From 0634d6586e8e13b1646ae6e55c2e5062084b13b4 Mon Sep 17 00:00:00 2001 From: David Ludwig Date: Tue, 22 Jan 2013 22:36:32 -0500 Subject: [PATCH] WinRT: hack-fixed a bug whereby SDL_UpdateWindowSurface would fail if the app was hidden, then re-shown --- src/video/windowsrt/SDL_WinRTApp.cpp | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/src/video/windowsrt/SDL_WinRTApp.cpp b/src/video/windowsrt/SDL_WinRTApp.cpp index 0e4326ad6..5cc9cadb6 100644 --- a/src/video/windowsrt/SDL_WinRTApp.cpp +++ b/src/video/windowsrt/SDL_WinRTApp.cpp @@ -152,11 +152,21 @@ void SDL_WinRTApp::OnVisibilityChanged(CoreWindow^ sender, VisibilityChangedEven { m_windowVisible = args->Visible; if (m_sdlWindowData) { + SDL_bool wasSDLWindowSurfaceValid = m_sdlWindowData->sdlWindow->surface_valid; + if (args->Visible) { SDL_SendWindowEvent(m_sdlWindowData->sdlWindow, SDL_WINDOWEVENT_SHOWN, 0, 0); } else { SDL_SendWindowEvent(m_sdlWindowData->sdlWindow, SDL_WINDOWEVENT_HIDDEN, 0, 0); } + + // HACK: Prevent SDL's window-hide handling code, which currently + // triggers a fake window resize (possibly erronously), from + // marking the SDL window's surface as invalid. + // + // A better solution to this probably involves figuring out if the + // fake window resize can be prevented. + m_sdlWindowData->sdlWindow->surface_valid = wasSDLWindowSurfaceValid; } }