qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PULL 18/21] ui/cocoa: release mouse when user switches away from QEMU w


From: Philippe Mathieu-Daudé
Subject: [PULL 18/21] ui/cocoa: release mouse when user switches away from QEMU window
Date: Tue, 15 Mar 2022 13:53:47 +0100

From: Carwyn Ellis <carwynellis@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 <carwynellis@gmail.com>
Reviewed-by: Akihiko Odaki <akihiko.odaki@gmail.com>
Signed-off-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
---
 ui/cocoa.m | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/ui/cocoa.m b/ui/cocoa.m
index 1aa51c42dc..d20c74d938 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -1261,6 +1261,7 @@ QemuCocoaView *cocoaView;
 - (void) applicationWillResignActive: (NSNotification *)aNotification
 {
     COCOA_DEBUG("QemuCocoaAppController: applicationWillResignActive\n");
+    [cocoaView ungrabMouse];
     [cocoaView raiseAllKeys];
 }
 
@@ -2000,6 +2001,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




reply via email to

[Prev in Thread] Current Thread [Next in Thread]