diff --git a/src/framework/WindowManager.cpp b/src/framework/WindowManager.cpp index 56db0aa724707a2a1a2a74d722470475dd4357a8..dba0d9f8d05f187c40d9c7f0bb92bd3bf492b06e 100644 --- a/src/framework/WindowManager.cpp +++ b/src/framework/WindowManager.cpp @@ -276,10 +276,13 @@ void WindowManager::eventLoop() (event.type == SDL_MOUSEMOTION || event.type == SDL_MOUSEBUTTONDOWN || event.type == SDL_KEYDOWN)) { - // we're in screensaver mode so exit on user input - SDL_GL_DeleteContext(m_GLContext); - SDL_DestroyWindow(m_Window); - SDL_Quit(); + // don't handle events prematurely + if((SDL_GetWindowFlags(m_Window) & SDL_WINDOW_SHOWN)) { + // we're in screensaver mode so exit on user input + SDL_GL_DeleteContext(m_GLContext); + SDL_DestroyWindow(m_Window); + SDL_Quit(); + } } else if (event.motion.state & (SDL_BUTTON(1) | SDL_BUTTON(3)) && event.type == SDL_MOUSEMOTION) {