From aa0e4472c0ff0091ff6e699894b5ef674e6c7647 Mon Sep 17 00:00:00 2001 From: Jules Blok Date: Fri, 11 Nov 2016 21:24:08 +0100 Subject: [PATCH] Frame: Move exclusive mode switching to helper function. --- Source/Core/DolphinWX/Frame.cpp | 36 ++++++++++++++------------------- Source/Core/DolphinWX/Frame.h | 1 + 2 files changed, 16 insertions(+), 21 deletions(-) diff --git a/Source/Core/DolphinWX/Frame.cpp b/Source/Core/DolphinWX/Frame.cpp index cf0929d639..a2a32c6ac8 100644 --- a/Source/Core/DolphinWX/Frame.cpp +++ b/Source/Core/DolphinWX/Frame.cpp @@ -521,15 +521,7 @@ void CFrame::OnActive(wxActivateEvent& event) if (SConfig::GetInstance().bRenderToMain) m_RenderParent->SetFocus(); else if (RendererIsFullscreen() && g_ActiveConfig.ExclusiveFullscreenEnabled()) - { - // Regain exclusive mode if it was lost due to a focus change. - if (g_renderer && !g_renderer->IsFullscreen()) - { - bool was_unpaused = Core::PauseAndLock(true); - g_renderer->SetFullscreen(true); - Core::PauseAndLock(false, was_unpaused); - } - } + DoExclusiveFullscreen(true); // Regain exclusive mode if (SConfig::GetInstance().m_PauseOnFocusLost && Core::GetState() == Core::CORE_PAUSE) DoPause(); @@ -1170,22 +1162,14 @@ void CFrame::DoFullscreen(bool enable_fullscreen) } else if (g_ActiveConfig.ExclusiveFullscreenEnabled()) { - if (g_renderer && !enable_fullscreen) - { - bool was_unpaused = Core::PauseAndLock(true); - g_renderer->SetFullscreen(false); - Core::PauseAndLock(false, was_unpaused); - } + if (!enable_fullscreen) + DoExclusiveFullscreen(false); m_RenderFrame->ShowFullScreen(enable_fullscreen, wxFULLSCREEN_ALL); m_RenderFrame->Raise(); - if (g_renderer && enable_fullscreen) - { - bool was_unpaused = Core::PauseAndLock(true); - g_renderer->SetFullscreen(true); - Core::PauseAndLock(false, was_unpaused); - } + if (enable_fullscreen) + DoExclusiveFullscreen(true); } else { @@ -1194,6 +1178,16 @@ void CFrame::DoFullscreen(bool enable_fullscreen) } } +void CFrame::DoExclusiveFullscreen(bool enable_fullscreen) +{ + if (g_renderer && g_renderer->IsFullscreen() != enable_fullscreen) + { + bool was_unpaused = Core::PauseAndLock(true); + g_renderer->SetFullscreen(enable_fullscreen); + Core::PauseAndLock(false, was_unpaused); + } +} + const CGameListCtrl* CFrame::GetGameListCtrl() const { return m_GameListCtrl; diff --git a/Source/Core/DolphinWX/Frame.h b/Source/Core/DolphinWX/Frame.h index c621043aff..dfe0a637e6 100644 --- a/Source/Core/DolphinWX/Frame.h +++ b/Source/Core/DolphinWX/Frame.h @@ -106,6 +106,7 @@ public: bool RendererHasFocus(); bool RendererIsFullscreen(); void DoFullscreen(bool bF); + void DoExclusiveFullscreen(bool bF); void ToggleDisplayMode(bool bFullscreen); static void ConnectWiimote(int wm_idx, bool connect); void UpdateTitle(const std::string& str);