aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarwyn Ellis <carwynellis@gmail.com>2022-01-02 17:41:53 +0000
committerPhilippe Mathieu-Daudé <f4bug@amsat.org>2022-03-15 13:36:33 +0100
commit69221df8cde644ce75053986b712c40a2a83966a (patch)
treefd34e3aabbb12d78903325ca8474440b6cb86c32
parent48941a52c2c3350b0c3dcdc1aba702def91d19a8 (diff)
downloadqemu-69221df8cde644ce75053986b712c40a2a83966a.zip
qemu-69221df8cde644ce75053986b712c40a2a83966a.tar.gz
qemu-69221df8cde644ce75053986b712c40a2a83966a.tar.bz2
ui/cocoa: release mouse when user switches away from QEMU window
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>
-rw-r--r--ui/cocoa.m2
1 files changed, 2 insertions, 0 deletions
diff --git a/ui/cocoa.m b/ui/cocoa.m
index 1aa51c4..d20c74d 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;
}