From: Carwyn Ellis <carwynel...@gmail.com> 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 <carwynel...@gmail.com> Reviewed-by: Akihiko Odaki <akihiko.od...@gmail.com> Signed-off-by: Philippe Mathieu-Daudé <f4...@amsat.org> --- ui/cocoa.m | 2 ++ 1 file changed, 2 insertions(+) diff --git a/ui/cocoa.m b/ui/cocoa.m index 319af5045b..31f0846c30 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -1264,6 +1264,7 @@ QemuCocoaView *cocoaView; - (void) applicationWillResignActive: (NSNotification *)aNotification { COCOA_DEBUG("QemuCocoaAppController: applicationWillResignActive\n"); + [cocoaView ungrabMouse]; [cocoaView raiseAllKeys]; } @@ -2066,6 +2067,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; } -- 2.34.1