mirror of
https://github.com/dolphin-emu/dolphin.git
synced 2024-11-15 05:47:56 -07:00
Frame: OnClose now handles asynchronous behaviour of DoStop().
This commit is contained in:
parent
3266394dfb
commit
b30d5dccbe
@ -352,7 +352,7 @@ CFrame::CFrame(wxFrame* parent,
|
||||
, m_LogWindow(nullptr), m_LogConfigWindow(nullptr)
|
||||
, m_FifoPlayerDlg(nullptr), UseDebugger(_UseDebugger)
|
||||
, m_bBatchMode(_BatchMode), m_bEdit(false), m_bTabSplit(false), m_bNoDocking(false)
|
||||
, m_bGameLoading(false)
|
||||
, m_bGameLoading(false), m_bClosing(false)
|
||||
{
|
||||
for (int i = 0; i <= IDM_CODEWINDOW - IDM_LOGWINDOW; i++)
|
||||
bFloatWindow[i] = false;
|
||||
@ -536,15 +536,18 @@ void CFrame::OnActive(wxActivateEvent& event)
|
||||
|
||||
void CFrame::OnClose(wxCloseEvent& event)
|
||||
{
|
||||
m_bClosing = true;
|
||||
|
||||
// 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();
|
||||
if (Core::GetState() != Core::CORE_UNINITIALIZED)
|
||||
return;
|
||||
UpdateGUI();
|
||||
event.Veto();
|
||||
return;
|
||||
}
|
||||
|
||||
//Stop Dolphin from saving the minimized Xpos and Ypos
|
||||
// Stop Dolphin from saving the minimized Xpos and Ypos
|
||||
if (main_frame->IsIconized())
|
||||
main_frame->Iconize(false);
|
||||
|
||||
|
@ -186,6 +186,7 @@ private:
|
||||
bool m_bTabSplit;
|
||||
bool m_bNoDocking;
|
||||
bool m_bGameLoading;
|
||||
bool m_bClosing;
|
||||
|
||||
std::vector<std::string> drives;
|
||||
|
||||
|
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user