Mac: Fixed SDL_SetWindowFullscreen not restoring the window's original size when exiting a Space.
authorAlex Szpakowski <slime73@gmail.com>
Mon, 30 Nov 2015 03:30:07 -0400
changeset 9932 a6a953b6d0ce
parent 9931 0bb3dd1c95f2
child 9933 16e85b80177f
Mac: Fixed SDL_SetWindowFullscreen not restoring the window's original size when exiting a Space.
src/video/cocoa/SDL_cocoawindow.m
--- a/src/video/cocoa/SDL_cocoawindow.m	Sun Nov 29 19:33:11 2015 -0500
+++ b/src/video/cocoa/SDL_cocoawindow.m	Mon Nov 30 03:30:07 2015 -0400
@@ -682,7 +682,10 @@
 {
     SDL_Window *window = _data->window;
 
-    SetWindowStyle(window, GetWindowStyle(window));
+    /* As of OS X 10.11, the window seems to need to be resizable when exiting
+       a Space, in order for it to resize back to its windowed-mode size.
+     */
+    SetWindowStyle(window, GetWindowStyle(window) | NSResizableWindowMask);
 
     isFullscreenSpace = NO;
     inFullscreenTransition = YES;
@@ -711,6 +714,8 @@
 
     inFullscreenTransition = NO;
 
+    SetWindowStyle(window, GetWindowStyle(window));
+
     [nswindow setLevel:kCGNormalWindowLevel];
 
     if (pendingWindowOperation == PENDING_OPERATION_ENTER_FULLSCREEN) {
@@ -1184,6 +1189,7 @@
 Cocoa_CreateWindow(_THIS, SDL_Window * window)
 { @autoreleasepool
 {
+    NSLog(@"CREATE WINDOW");
     SDL_VideoData *videodata = (SDL_VideoData *) _this->driverdata;
     NSWindow *nswindow;
     SDL_VideoDisplay *display = SDL_GetDisplayForWindow(window);
@@ -1543,6 +1549,7 @@
     }
 
     s_moveHack = 0;
+    NSLog(@"SET CONTENT SIZE: %@", NSStringFromRect(rect));
     [nswindow setContentSize:rect.size];
     [nswindow setFrameOrigin:rect.origin];
     s_moveHack = SDL_GetTicks();