changeset 5253:ff2564c24045

Fixed cocoa trying to shuffling windows when going fullscreen on the main display.
author Sam Lantinga <slouken@libsdl.org>
date Thu, 10 Feb 2011 22:49:14 -0800
parents d844537c42fd
children 7a963be087ef
files src/video/cocoa/SDL_cocoamodes.m
diffstat 1 files changed, 11 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/src/video/cocoa/SDL_cocoamodes.m	Thu Feb 10 22:37:01 2011 -0800
+++ b/src/video/cocoa/SDL_cocoamodes.m	Thu Feb 10 22:49:14 2011 -0800
@@ -258,14 +258,23 @@
         /* Restoring desktop mode */
         CGDisplaySwitchToMode(displaydata->display, data->moderef);
 
-        CGDisplayRelease(displaydata->display);
+        if (CGDisplayIsMain(displaydata->display)) {
+            CGReleaseAllDisplays();
+        } else {
+            CGDisplayRelease(displaydata->display);
+        }
 
         if (CGDisplayIsMain(displaydata->display)) {
             ShowMenuBar();
         }
     } else {
         /* Put up the blanking window (a window above all other windows) */
-        result = CGDisplayCapture(displaydata->display);
+        if (CGDisplayIsMain(displaydata->display)) {
+            /* If we don't capture all displays, Cocoa tries to rearrange windows... *sigh* */
+            result = CGCaptureAllDisplays();
+        } else {
+            result = CGDisplayCapture(displaydata->display);
+        }
         if (result != kCGErrorSuccess) {
             CG_SetError("CGDisplayCapture()", result);
             goto ERR_NO_CAPTURE;