diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index f77e24add6..bfe79182a1 100644 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -3757,6 +3757,12 @@ void SDL_DestroyWindow(SDL_Window *window) SDL_DestroyRendererWithoutFreeing(renderer); } + /* Restore video mode, etc. */ + SDL_UpdateFullscreenMode(window, SDL_FALSE, SDL_TRUE); + if (!(window->flags & SDL_WINDOW_EXTERNAL)) { + SDL_HideWindow(window); + } + SDL_DestroyProperties(window->props); /* Clear the modal status, but don't unset the parent, as it may be @@ -3767,12 +3773,6 @@ void SDL_DestroyWindow(SDL_Window *window) _this->SetWindowModalFor(_this, window, NULL); } - /* Restore video mode, etc. */ - SDL_UpdateFullscreenMode(window, SDL_FALSE, SDL_TRUE); - if (!(window->flags & SDL_WINDOW_EXTERNAL)) { - SDL_HideWindow(window); - } - /* Make sure the destroyed window isn't referenced by any display as a fullscreen window. */ for (int i = 0; i < _this->num_displays; ++i) { if (_this->displays[i]->fullscreen_window == window) {