From eaebebc33d19a37933e9a5a8f579a424c7e9e778 Mon Sep 17 00:00:00 2001 From: Rachel Bryk Date: Thu, 14 Mar 2013 05:27:49 -0400 Subject: [PATCH] Prevent the render window from spawning off screen. Fixes issue 6063. --- Source/Core/DolphinWX/Src/FrameTools.cpp | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/Source/Core/DolphinWX/Src/FrameTools.cpp b/Source/Core/DolphinWX/Src/FrameTools.cpp index 4b1fc820a9..11d9281281 100644 --- a/Source/Core/DolphinWX/Src/FrameTools.cpp +++ b/Source/Core/DolphinWX/Src/FrameTools.cpp @@ -861,14 +861,22 @@ void CFrame::StartGame(const std::string& filename) position = wxDefaultPosition; #endif + wxSize size(SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowWidth, + SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowHeight); +#ifdef _WIN32 + // Out of desktop check + HWND hDesktop = GetDesktopWindow(); + RECT rc; + GetWindowRect(hDesktop, &rc); + if (rc.right < position.x + size.GetWidth() || rc.bottom < position.y + size.GetHeight()) + position.x = position.y = wxDefaultCoord; +#endif m_RenderFrame = new CRenderFrame((wxFrame*)this, wxID_ANY, _("Dolphin"), position); if (SConfig::GetInstance().m_LocalCoreStartupParameter.bKeepWindowOnTop) m_RenderFrame->SetWindowStyle(m_RenderFrame->GetWindowStyle() | wxSTAY_ON_TOP); else m_RenderFrame->SetWindowStyle(m_RenderFrame->GetWindowStyle() & ~wxSTAY_ON_TOP); - wxSize size(SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowWidth, - SConfig::GetInstance().m_LocalCoreStartupParameter.iRenderWindowHeight); m_RenderFrame->SetClientSize(size.GetWidth(), size.GetHeight()); m_RenderFrame->Bind(wxEVT_CLOSE_WINDOW, &CFrame::OnRenderParentClose, this); m_RenderFrame->Bind(wxEVT_ACTIVATE, &CFrame::OnActive, this);