summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/video/cocoa/wnd_quartz.mm17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/video/cocoa/wnd_quartz.mm b/src/video/cocoa/wnd_quartz.mm
index 9914b97c9..4274c2ca4 100644
--- a/src/video/cocoa/wnd_quartz.mm
+++ b/src/video/cocoa/wnd_quartz.mm
@@ -514,8 +514,21 @@ CGPoint WindowQuartzSubdriver::PrivateLocalToCG(NSPoint *p)
NSPoint WindowQuartzSubdriver::GetMouseLocation(NSEvent *event)
{
- NSPoint pt = [ event locationInWindow ];
- pt = [ this->cocoaview convertPoint:pt fromView:nil ];
+ NSPoint pt;
+
+ if (event.window == nil) {
+#if MAC_OS_X_VERSION_MAX_ALLOWED >= MAC_OS_X_VERSION_10_7
+ if ([ this->cocoaview respondsToSelector:@selector(convertRectFromScreen:) ]) {
+ pt = [ this->cocoaview convertPoint:[ [ this->cocoaview window ] convertRectFromScreen:NSMakeRect([ event locationInWindow ].x, [ event locationInWindow ].y, 0, 0) ].origin fromView:nil ];
+ }
+ else
+#endif
+ {
+ pt = [ this->cocoaview convertPoint:[ [ this->cocoaview window ] convertScreenToBase:[ event locationInWindow ] ] fromView:nil ];
+ }
+ } else {
+ pt = [ event locationInWindow ];
+ }
pt.y = this->window_height - pt.y;