changeset 3409:c8f580ebc96a

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.
author Sam Lantinga <slouken@libsdl.org>
date Thu, 22 Oct 2009 04:46:11 +0000
parents 55541ddf13e3
children f4bc25567731
files src/video/cocoa/SDL_cocoawindow.m
diffstat 1 files changed, 9 insertions(+), 0 deletions(-) [+]
line wrap: on
line diff
--- 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 ||