From 5103ae9fd6fe55ee1e4c7f47b4e06dfbdbe6491b Mon Sep 17 00:00:00 2001 From: Sam Lantinga Date: Mon, 9 Nov 2015 08:55:07 -0800 Subject: [PATCH] one last SDL fix: restore menu bar if we destroy a fullscreen window without transitioning it back to a non-fullscreen window first --- src/video/cocoa/SDL_cocoawindow.m | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/video/cocoa/SDL_cocoawindow.m b/src/video/cocoa/SDL_cocoawindow.m index f6417db84..fad9971ef 100644 --- a/src/video/cocoa/SDL_cocoawindow.m +++ b/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) {