diff --git a/src/video/SDL_video.c b/src/video/SDL_video.c index 055fc4eb8..c3e18964f 100755 --- a/src/video/SDL_video.c +++ b/src/video/SDL_video.c @@ -1932,6 +1932,17 @@ SDL_DestroyWindow(SDL_Window * window) CHECK_WINDOW_MAGIC(window, ); + /* Restore video mode, etc. */ + SDL_HideWindow(window); + + /* Make sure this window no longer has focus */ + if (SDL_GetKeyboardFocus() == window) { + SDL_SetKeyboardFocus(NULL); + } + if (SDL_GetMouseFocus() == window) { + SDL_SetMouseFocus(NULL); + } + /* make no context current if this is the current context window. */ if (window->flags & SDL_WINDOW_OPENGL) { if (_this->current_glwin == window) { @@ -1939,9 +1950,6 @@ SDL_DestroyWindow(SDL_Window * window) } } - /* Restore video mode, etc. */ - SDL_HideWindow(window); - if (window->surface) { window->surface->flags &= ~SDL_DONTFREE; SDL_FreeSurface(window->surface);