Reviewed-by: Akihiko Odaki <akihiko.odaki@gmail.com>
On 2022/01/03 2:41, Carwyn Ellis wrote:
> This resolves an issue where using command-tab to switch between QEMU
> and other windows on the host can leave the mouse pointer visible.
>
> By releasing the mouse when the user switches away, the user must left
> click on the QEMU window when switching back in order to hide the
> pointer and return control to the guest.
>
> This appraoch ensures that the calls to NSCursor hide and unhide are
> always balanced and thus work correctly when invoked.
>
> Signed-off-by: Carwyn Ellis <carwynellis@gmail.com>
> ---
> ui/cocoa.m | 2 ++
> 1 file changed, 2 insertions(+)
>
> diff --git a/ui/cocoa.m b/ui/cocoa.m
> index 01045d6698..3f7af4a8fa 100644
> --- a/ui/cocoa.m
> +++ b/ui/cocoa.m
> @@ -1243,6 +1243,7 @@ QemuCocoaView *cocoaView;
> - (void) applicationWillResignActive: (NSNotification *)aNotification
> {
> COCOA_DEBUG("QemuCocoaAppController: applicationWillResignActive\n");
> + [cocoaView ungrabMouse];
> [cocoaView raiseAllKeys];
> }
>
> @@ -2052,6 +2053,7 @@ static void cocoa_display_init(DisplayState *ds, DisplayOptions *opts)
> [(QemuCocoaAppController *)[[NSApplication sharedApplication] delegate] toggleFullScreen: nil];
> });
> }
> +
> if (opts->has_show_cursor && opts->show_cursor) {
> cursor_hide = 0;
> }