diff options
author | Peter Maydell | 2014-06-23 11:35:23 +0200 |
---|---|---|
committer | Peter Maydell | 2014-06-29 23:00:33 +0200 |
commit | 5dd45bee5816ef1e941fdf1122943e4ab345f388 (patch) | |
tree | 8e6e00f3cd8b12186c5db4efe4a58b577f6d5d60 /ui | |
parent | ui/cocoa: Cope with first surface being same as initial window size (diff) | |
download | qemu-5dd45bee5816ef1e941fdf1122943e4ab345f388.tar.gz qemu-5dd45bee5816ef1e941fdf1122943e4ab345f388.tar.xz qemu-5dd45bee5816ef1e941fdf1122943e4ab345f388.zip |
ui/cocoa: Add utility method to check if point is within window
Add a utility method to check whether a point is within the current window
bounds, and use it in the various places in the mouse handling code that
were opencoding the check.
Signed-off-by: Peter Maydell <peter.maydell@linaro.org>
Message-id: 1403516125-14568-3-git-send-email-peter.maydell@linaro.org
Diffstat (limited to 'ui')
-rw-r--r-- | ui/cocoa.m | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/ui/cocoa.m b/ui/cocoa.m index a270a464d8..1a626e215f 100644 --- a/ui/cocoa.m +++ b/ui/cocoa.m @@ -305,6 +305,11 @@ QemuCocoaView *cocoaView; return YES; } +- (BOOL) screenContainsPoint:(NSPoint) p +{ + return (p.x > -1 && p.x < screen.width && p.y > -1 && p.y < screen.height); +} + - (void) drawRect:(NSRect) rect { COCOA_DEBUG("QemuCocoaView: drawRect\n"); @@ -607,7 +612,7 @@ QemuCocoaView *cocoaView; break; case NSMouseMoved: if (isAbsoluteEnabled) { - if (p.x < 0 || p.x > screen.width || p.y < 0 || p.y > screen.height || ![[self window] isKeyWindow]) { + if (![self screenContainsPoint:p] || ![[self window] isKeyWindow]) { if (isTabletEnabled) { // if we leave the window, deactivate the tablet [NSCursor unhide]; isTabletEnabled = FALSE; @@ -657,7 +662,7 @@ QemuCocoaView *cocoaView; if (isTabletEnabled) { mouse_event = true; } else if (!isMouseGrabbed) { - if (p.x > -1 && p.x < screen.width && p.y > -1 && p.y < screen.height) { + if ([self screenContainsPoint:p]) { [self grabMouse]; } else { [NSApp sendEvent:event]; |