diff options
| author | Jules Blok <jules.blok@gmail.com> | 2014-06-20 03:03:00 +0200 |
|---|---|---|
| committer | Jules Blok <jules.blok@gmail.com> | 2014-07-08 21:21:24 +0200 |
| commit | b30d5dccbe46c4bf9977a1437a826d082abebee0 (patch) | |
| tree | 8edaed412d98daddeb5cbe8fe32897dd415e0e23 /Source/Core/DolphinWX/FrameTools.cpp | |
| parent | 3266394dfbb564f69e3cd6470ad608a4db314916 (diff) | |
Frame: OnClose now handles asynchronous behaviour of DoStop().
Diffstat (limited to 'Source/Core/DolphinWX/FrameTools.cpp')
| -rw-r--r-- | Source/Core/DolphinWX/FrameTools.cpp | 17 |
1 files changed, 12 insertions, 5 deletions
diff --git a/Source/Core/DolphinWX/FrameTools.cpp b/Source/Core/DolphinWX/FrameTools.cpp index 7c72aad691..6fb0f0106a 100644 --- a/Source/Core/DolphinWX/FrameTools.cpp +++ b/Source/Core/DolphinWX/FrameTools.cpp @@ -832,9 +832,16 @@ void CFrame::OnPlay(wxCommandEvent& WXUNUSED (event)) void CFrame::OnRenderParentClose(wxCloseEvent& event) { - DoStop(); - if (Core::GetState() == Core::CORE_UNINITIALIZED) - event.Skip(); + // Before closing the window we need to shut down the emulation core. + // We'll try to close this window again once that is done. + if (Core::GetState() != Core::CORE_UNINITIALIZED) + { + DoStop(); + event.Veto(); + return; + } + + event.Skip(); } void CFrame::OnRenderParentMove(wxMoveEvent& event) @@ -1177,8 +1184,8 @@ void CFrame::OnStopped() // Clear wiimote connection status from the status bar. GetStatusBar()->SetStatusText(" ", 1); - // If batch mode was specified on the command-line, exit now. - if (m_bBatchMode) + // If batch mode was specified on the command-line or we were already closing, exit now. + if (m_bBatchMode || m_bClosing) Close(true); // If using auto size with render to main, reset the application size. |
