From 5d2d074ee2c8dd1d67ca2f5bc0523912d0ca9078 Mon Sep 17 00:00:00 2001 From: David Ludwig Date: Mon, 29 Oct 2012 23:32:13 -0400 Subject: [PATCH] WinRT: fixed bug whereby attempting to create a 2nd window (which intentionall fails, for now) would cause mouse input to stop working --- src/video/windowsrt/SDL_WinRTApp.cpp | 5 +++++ src/video/windowsrt/SDL_WinRTApp.h | 3 ++- src/video/windowsrt/SDL_winrtvideo.cpp | 3 ++- 3 files changed, 9 insertions(+), 2 deletions(-) diff --git a/src/video/windowsrt/SDL_WinRTApp.cpp b/src/video/windowsrt/SDL_WinRTApp.cpp index 45b1ba30b..480eda734 100644 --- a/src/video/windowsrt/SDL_WinRTApp.cpp +++ b/src/video/windowsrt/SDL_WinRTApp.cpp @@ -198,6 +198,11 @@ SDL_DisplayMode SDL_WinRTApp::GetMainDisplayMode() return mode; } +const SDL_WindowData * SDL_WinRTApp::GetSDLWindowData() const +{ + return m_sdlWindowData; +} + bool SDL_WinRTApp::HasSDLWindowData() const { return (m_sdlWindowData != NULL); diff --git a/src/video/windowsrt/SDL_WinRTApp.h b/src/video/windowsrt/SDL_WinRTApp.h index 68daeb3b8..af9d0bd22 100644 --- a/src/video/windowsrt/SDL_WinRTApp.h +++ b/src/video/windowsrt/SDL_WinRTApp.h @@ -23,8 +23,9 @@ ref class SDL_WinRTApp sealed : public Windows::ApplicationModel::Core::IFramewo // SDL-specific methods SDL_DisplayMode GetMainDisplayMode(); void PumpEvents(); + const SDL_WindowData * GetSDLWindowData() const; bool HasSDLWindowData() const; - void SetSDLWindowData(const SDL_WindowData* windowData); + void SetSDLWindowData(const SDL_WindowData * windowData); protected: // Event Handlers. diff --git a/src/video/windowsrt/SDL_winrtvideo.cpp b/src/video/windowsrt/SDL_winrtvideo.cpp index ec67c9570..16a0474b9 100644 --- a/src/video/windowsrt/SDL_winrtvideo.cpp +++ b/src/video/windowsrt/SDL_winrtvideo.cpp @@ -168,7 +168,8 @@ WINRT_CreateWindow(_THIS, SDL_Window * window) void WINRT_DestroyWindow(_THIS, SDL_Window * window) { - if (SDL_WinRTGlobalApp->HasSDLWindowData()) + if (SDL_WinRTGlobalApp->HasSDLWindowData() && + SDL_WinRTGlobalApp->GetSDLWindowData()->sdlWindow == window) { SDL_WinRTGlobalApp->SetSDLWindowData(NULL); }