Browse Source

Mac: Fixed SDL_SetWindowFullscreen not restoring the window's original size when exiting a Space.

Alex Szpakowski 9 years ago
parent
commit
9ddc6c3441
1 changed files with 8 additions and 1 deletions
  1. 8 1
      src/video/cocoa/SDL_cocoawindow.m

+ 8 - 1
src/video/cocoa/SDL_cocoawindow.m

@@ -682,7 +682,10 @@ SetWindowStyle(SDL_Window * window, unsigned int style)
 {
     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 @@ SetWindowStyle(SDL_Window * window, unsigned int style)
 
     inFullscreenTransition = NO;
 
+    SetWindowStyle(window, GetWindowStyle(window));
+
     [nswindow setLevel:kCGNormalWindowLevel];
 
     if (pendingWindowOperation == PENDING_OPERATION_ENTER_FULLSCREEN) {
@@ -1184,6 +1189,7 @@ int
 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 @@ Cocoa_SetWindowFullscreen(_THIS, SDL_Window * window, SDL_VideoDisplay * display
     }
 
     s_moveHack = 0;
+    NSLog(@"SET CONTENT SIZE: %@", NSStringFromRect(rect));
     [nswindow setContentSize:rect.size];
     [nswindow setFrameOrigin:rect.origin];
     s_moveHack = SDL_GetTicks();