diff options
| author | comex <comexk@gmail.com> | 2014-09-30 01:28:01 -0400 |
|---|---|---|
| committer | comex <comexk@gmail.com> | 2014-09-30 01:35:48 -0400 |
| commit | 8fed5aa492343e2d0a3455dd75961ac75cde4aba (patch) | |
| tree | 0a30db1a902be7458a9b77a120b4941916f915bc /Source/Core/DolphinWX/Frame.cpp | |
| parent | b5ebace92e6645b50908c3405626f4a9eb303367 (diff) | |
Fix focus detection on OS X by replacing wxGetActiveWindow with wxWindow::FindFocus.
wxGetActiveWindow is implemented as "return NULL" on OS X, while
wxWindow::FindFocus works. On Windows, the difference is in the use of
GetActiveWindow() vs. GetForegroundWindow(). A MSDN comment says:
> A system has only one active window, which GetForegroundWindow()
> returns. GetActiveWindow() seems to return the same window as
> GetForegroundWindow() if the foreground window belongs to the current
> thread. Otherwise, it always returns null, rather than the topmost
> window of the calling thread.
Since we are on the GUI thread, it shouldn't make any difference.
Diffstat (limited to 'Source/Core/DolphinWX/Frame.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/Frame.cpp | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/Source/Core/DolphinWX/Frame.cpp b/Source/Core/DolphinWX/Frame.cpp index 8b806ab34a..519993e5b5 100644 --- a/Source/Core/DolphinWX/Frame.cpp +++ b/Source/Core/DolphinWX/Frame.cpp @@ -708,7 +708,7 @@ void CFrame::OnHostMessage(wxCommandEvent& event) wxString caption = event.GetString().BeforeFirst(':'); wxString text = event.GetString().AfterFirst(':'); bPanicResult = (wxYES == wxMessageBox(text, - caption, event.GetInt() ? wxYES_NO : wxOK, wxGetActiveWindow())); + caption, event.GetInt() ? wxYES_NO : wxOK, wxWindow::FindFocus())); panic_event.Set(); } break; @@ -805,11 +805,11 @@ bool CFrame::UIHasFocus() // UIHasFocus should return true any time any one of our UI // windows has the focus, including any dialogs or other windows. // - // wxGetActiveWindow() returns the current wxWindow which has + // wxWindow::FindFocus() returns the current wxWindow which has // focus. If it's not one of our windows, then it will return // null. - wxWindow *focusWindow = wxGetActiveWindow(); + wxWindow *focusWindow = wxWindow::FindFocus(); return (focusWindow != nullptr); } |
