Ver Fonte

one last SDL fix: restore menu bar if we destroy a fullscreen window without transitioning it back to a non-fullscreen window first

Sam Lantinga há 9 anos atrás
pai
commit
5103ae9fd6
1 ficheiros alterados com 12 adições e 1 exclusões
  1. 12 1
      src/video/cocoa/SDL_cocoawindow.m

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

@@ -641,7 +641,11 @@ SetWindowStyle(SDL_Window * window, unsigned int style)
 - (void)windowDidFailToEnterFullScreen:(NSNotification *)aNotification
 {
     SDL_Window *window = _data->window;
-    
+
+    if (window->is_destroying) {
+        return;
+    }
+
     SetWindowStyle(window, GetWindowStyle(window));
 
     isFullscreenSpace = NO;
@@ -688,6 +692,10 @@ SetWindowStyle(SDL_Window * window, unsigned int style)
 {
     SDL_Window *window = _data->window;
     
+    if (window->is_destroying) {
+        return;
+    }
+
     SetWindowStyle(window, (NSTitledWindowMask|NSClosableWindowMask|NSMiniaturizableWindowMask|NSResizableWindowMask));
     
     isFullscreenSpace = YES;
@@ -1648,6 +1656,9 @@ Cocoa_DestroyWindow(_THIS, SDL_Window * window)
     SDL_WindowData *data = (SDL_WindowData *) window->driverdata;
 
     if (data) {
+        if ([data->listener isInFullscreenSpace]) {
+            [NSMenu setMenuBarVisible:YES];
+        }
         [data->listener close];
         [data->listener release];
         if (data->created) {