Adam Strzelecki to SDL
authorSam Lantinga <slouken@libsdl.org>
Thu, 22 Oct 2009 04:46:11 +0000
changeset 3409 c8f580ebc96a
parent 3408 55541ddf13e3
child 3410 f4bc25567731
Adam Strzelecki to SDL Sending a patch for fullscreen Mac OS X SDL 1.3 (SVN) Cocoa mouse position handling. In fullscreen mouse coordinates should be relative to SCREEN not to the window, which doesn't really occupy fullscreen. Without this patch mouse position (especially Y) was totally incorrect (shifted) in fullscreen.
src/video/cocoa/SDL_cocoawindow.m
--- a/src/video/cocoa/SDL_cocoawindow.m	Wed Oct 21 14:51:42 2009 +0000
+++ b/src/video/cocoa/SDL_cocoawindow.m	Thu Oct 22 04:46:11 2009 +0000
@@ -239,6 +239,15 @@
     mouse = SDL_GetMouse(index);
 
     point = [NSEvent mouseLocation];
+    if ( (window->flags & SDL_WINDOW_FULLSCREEN) ) {
+        rect.size.width = CGDisplayPixelsWide(kCGDirectMainDisplay);
+        rect.size.height = CGDisplayPixelsHigh(kCGDirectMainDisplay);
+        point.y = rect.size.height - point.y;
+    } else {
+        rect = [_data->window contentRectForFrameRect:[_data->window frame]];
+        point.x = point.x - rect.origin.x;
+        point.y = rect.size.height - (point.y - rect.origin.y);
+    }
     point.x = point.x - rect.origin.x;
     point.y = rect.size.height - (point.y - rect.origin.y);
     if ( point.x < 0 || point.x >= rect.size.width ||