aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChen Zhang <tgfbeta@me.com>2019-06-04 17:36:48 +0800
committerPeter Maydell <peter.maydell@linaro.org>2019-06-13 11:23:22 +0100
commit8e23e34d989d5ce542fa26425f091fc61e1f23f4 (patch)
tree294015242f6fff8e93c891cf31249ff6776f5c39
parent2044dff87004b9b0faf1c8299491b258332c6887 (diff)
ui/cocoa: Fix mouse grabbing in fullscreen mode for relative input device
In fullscreen mode, the window property of cocoaView may not be the key window, and the current implementation would not re-grab cursor by left click in fullscreen mode after ungrabbed in fullscreen mode with hot-key ctrl-opt-g. This patch used value of isFullscreen as a short-cirtuit condition for relative input device grabbing. Signed-off-by: Chen Zhang <tgfbeta@me.com> Reviewed-by: Peter Maydell <peter.maydell@linaro.org> Message-id: 2D2F1191-E82F-4B54-A6E7-73FFB953DE93@me.com Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
-rw-r--r--ui/cocoa.m7
1 files changed, 6 insertions, 1 deletions
diff --git a/ui/cocoa.m b/ui/cocoa.m
index 73cfafa524..c2984028c5 100644
--- a/ui/cocoa.m
+++ b/ui/cocoa.m
@@ -902,7 +902,12 @@ QemuCocoaView *cocoaView;
case NSEventTypeLeftMouseUp:
mouse_event = true;
if (!isMouseGrabbed && [self screenContainsPoint:p]) {
- if([[self window] isKeyWindow]) {
+ /*
+ * In fullscreen mode, the window of cocoaView may not be the
+ * key window, therefore the position relative to the virtual
+ * screen alone will be sufficient.
+ */
+ if(isFullscreen || [[self window] isKeyWindow]) {
[self grabMouse];
}
}