src/video/cocoa/SDL_cocoawindow.m
changeset 5367 71fe70373e58
parent 5361 1d9e27849ed9
child 5371 fc3d3d580777
--- a/src/video/cocoa/SDL_cocoawindow.m	Sun Feb 20 19:15:00 2011 -0800
+++ b/src/video/cocoa/SDL_cocoawindow.m	Sun Feb 20 20:49:31 2011 -0800
@@ -135,8 +135,20 @@
 
 - (void)windowDidBecomeKey:(NSNotification *)aNotification
 {
+    SDL_Window *window = _data->window;
+
     /* We're going to get keyboard events, since we're key. */
-    SDL_SetKeyboardFocus(_data->window);
+    SDL_SetKeyboardFocus(window);
+
+    /* If we just gained focus we need the updated mouse position */
+    if (!(window->flags & SDL_WINDOW_FULLSCREEN)) {
+        NSPoint point;
+        point = [NSEvent mouseLocation];
+        point = [_data->nswindow convertScreenToBase:point];
+        point = [[_data->nswindow contentView] convertPoint:point fromView:nil];
+        point.y = window->h - point.y;
+        SDL_SendMouseMotion(window, 0, (int)point.x, (int)point.y);
+    }
 
     /* Check to see if someone updated the clipboard */
     Cocoa_CheckClipboardUpdate(_data->videodata);