# HG changeset patch # User Sam Lantinga # Date 1297406954 28800 # Node ID ff2564c24045c4d2c1ad09ffa35a77366d009da2 # Parent d844537c42fdcce3135b0d7d12ec91e5249466ce Fixed cocoa trying to shuffling windows when going fullscreen on the main display. diff -r d844537c42fd -r ff2564c24045 src/video/cocoa/SDL_cocoamodes.m --- 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;