diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index e998b0eb47..e52e80d2a9 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -3456,6 +3456,12 @@ void SDL_OnWindowShown(SDL_Window *window) void SDL_OnWindowHidden(SDL_Window *window) { + /* Store the maximized and fullscreen flags for restoration later, in case + * this was initiated by the window manager due to the window being unmapped + * when minimized. + */ + window->pending_flags = (window->flags & (SDL_WINDOW_FULLSCREEN | SDL_WINDOW_MAXIMIZED)); + /* The window is already hidden at this point, so just change the mode back if necessary. */ SDL_UpdateFullscreenMode(window, SDL_FALSE, SDL_FALSE); }