From 04db99749b6cb81f5df92e80fe0e731cb1eb9f12 Mon Sep 17 00:00:00 2001 From: Patric Stout Date: Mon, 8 Mar 2021 16:57:59 +0100 Subject: Fix #8784: using alt+enter didn't update the fullscreen toggle visibly (#8820) Basically, the window was not invalidated, so it was never redrawn. This made it look like it wasn't working, but it really was. --- src/video/cocoa/cocoa_v.mm | 1 + src/video/sdl2_v.cpp | 1 + src/video/sdl_v.cpp | 1 + src/video/win32_v.cpp | 5 ++++- 4 files changed, 7 insertions(+), 1 deletion(-) diff --git a/src/video/cocoa/cocoa_v.mm b/src/video/cocoa/cocoa_v.mm index 7b7fe9d67..1a75017df 100644 --- a/src/video/cocoa/cocoa_v.mm +++ b/src/video/cocoa/cocoa_v.mm @@ -201,6 +201,7 @@ bool VideoDriver_Cocoa::ToggleFullscreen(bool full_screen) [ NSMenu setMenuBarVisible:!full_screen ]; this->UpdateVideoModes(); + InvalidateWindowClassesData(WC_GAME_OPTIONS, 3); return true; } diff --git a/src/video/sdl2_v.cpp b/src/video/sdl2_v.cpp index f122a2921..a1f896050 100644 --- a/src/video/sdl2_v.cpp +++ b/src/video/sdl2_v.cpp @@ -761,6 +761,7 @@ bool VideoDriver_SDL_Base::ToggleFullscreen(bool fullscreen) DEBUG(driver, 0, "SDL_SetWindowFullscreen() failed: %s", SDL_GetError()); } + InvalidateWindowClassesData(WC_GAME_OPTIONS, 3); return ret == 0; } diff --git a/src/video/sdl_v.cpp b/src/video/sdl_v.cpp index f9ec2a86c..8f7c26b89 100644 --- a/src/video/sdl_v.cpp +++ b/src/video/sdl_v.cpp @@ -763,6 +763,7 @@ bool VideoDriver_SDL::ToggleFullscreen(bool fullscreen) _fullscreen ^= true; } + InvalidateWindowClassesData(WC_GAME_OPTIONS, 3); return ret; } diff --git a/src/video/win32_v.cpp b/src/video/win32_v.cpp index ae1f5aafa..30729ead6 100644 --- a/src/video/win32_v.cpp +++ b/src/video/win32_v.cpp @@ -967,7 +967,10 @@ bool VideoDriver_Win32Base::ToggleFullscreen(bool full_screen) std::unique_lock lock; if (this->draw_mutex != nullptr) lock = std::unique_lock(*this->draw_mutex); - return this->MakeWindow(full_screen); + bool res = this->MakeWindow(full_screen); + + InvalidateWindowClassesData(WC_GAME_OPTIONS, 3); + return res; } void VideoDriver_Win32Base::AcquireBlitterLock() -- cgit v1.2.3-70-g09d2