summaryrefslogtreecommitdiff
path: root/Source/Core/DolphinWX/Frame.cpp
diff options
context:
space:
mode:
authorJasper St. Pierre <jstpierre@mecheye.net>2014-07-12 07:29:49 -0400
committerJasper St. Pierre <jstpierre@mecheye.net>2014-07-12 07:29:49 -0400
commitff918df88991710d58d983aa2e5dbcf03f2064ab (patch)
treece0f036112bc838ba14e9ca869f8a74e76697f3a /Source/Core/DolphinWX/Frame.cpp
parente4eec2002b4cc8189677e7540de207bdef9dbf17 (diff)
Frame: Fix RendererHasFocus
The logic of RendererHasFocus was extremely convoluted beforehand and was too brittle and broke in certain circumstances, like when the GCPad window was active. Simplify it and leave a comment explaining the new logic. This fixes the GCPad window not working when Background Input is unchecked.
Diffstat (limited to 'Source/Core/DolphinWX/Frame.cpp')
-rw-r--r--Source/Core/DolphinWX/Frame.cpp27
1 files changed, 9 insertions, 18 deletions
diff --git a/Source/Core/DolphinWX/Frame.cpp b/Source/Core/DolphinWX/Frame.cpp
index d0f379b78a..12fcb5f3bf 100644
--- a/Source/Core/DolphinWX/Frame.cpp
+++ b/Source/Core/DolphinWX/Frame.cpp
@@ -753,24 +753,15 @@ void CFrame::OnRenderWindowSizeRequest(int width, int height)
bool CFrame::RendererHasFocus()
{
- if (m_RenderParent == nullptr)
- return false;
-#ifdef _WIN32
- if (m_RenderParent->GetParent()->GetHWND() == GetForegroundWindow())
- return true;
-#else
- wxWindow *window = wxWindow::FindFocus();
- if (window == nullptr)
- return false;
- // Why these different cases?
- if (m_RenderParent == window ||
- m_RenderParent == window->GetParent() ||
- m_RenderParent->GetParent() == window->GetParent())
- {
- return true;
- }
-#endif
- return false;
+ // RendererHasFocus should return true any time any one of our
+ // windows has the focus, including any dialogs or other windows.
+ //
+ // wxGetActiveWindow() returns the current wxWindow which has
+ // focus. If it's not one of our windows, then it will return
+ // null.
+
+ wxWindow *focusWindow = wxGetActiveWindow();
+ return (focusWindow != nullptr);
}
void CFrame::OnGameListCtrl_ItemActivated(wxListEvent& WXUNUSED (event))