Browse Source
Merge pull request #9500 from liamwhite/reentrant-shutdown
qt: prevent reentrant shutdown
pull/15/merge
liamwhite
3 years ago
committed by
GitHub
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with
12 additions and
5 deletions
-
src/yuzu/main.cpp
-
src/yuzu/main.h
|
|
|
@ -1785,9 +1785,9 @@ void GMainWindow::BootGame(const QString& filename, u64 program_id, std::size_t |
|
|
|
OnStartGame(); |
|
|
|
} |
|
|
|
|
|
|
|
void GMainWindow::OnShutdownBegin() { |
|
|
|
bool GMainWindow::OnShutdownBegin() { |
|
|
|
if (!emulation_running) { |
|
|
|
return; |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
if (ui->action_Fullscreen->isChecked()) { |
|
|
|
@ -1799,6 +1799,10 @@ void GMainWindow::OnShutdownBegin() { |
|
|
|
// Disable unlimited frame rate
|
|
|
|
Settings::values.use_speed_limit.SetValue(true); |
|
|
|
|
|
|
|
if (system->IsShuttingDown()) { |
|
|
|
return false; |
|
|
|
} |
|
|
|
|
|
|
|
system->SetShuttingDown(true); |
|
|
|
discord_rpc->Pause(); |
|
|
|
|
|
|
|
@ -1817,6 +1821,8 @@ void GMainWindow::OnShutdownBegin() { |
|
|
|
ui->action_Pause->setEnabled(false); |
|
|
|
ui->action_Restart->setEnabled(false); |
|
|
|
ui->action_Stop->setEnabled(false); |
|
|
|
|
|
|
|
return true; |
|
|
|
} |
|
|
|
|
|
|
|
void GMainWindow::OnShutdownBeginDialog() { |
|
|
|
@ -3003,8 +3009,9 @@ void GMainWindow::OnStopGame() { |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
OnShutdownBegin(); |
|
|
|
OnShutdownBeginDialog(); |
|
|
|
if (OnShutdownBegin()) { |
|
|
|
OnShutdownBeginDialog(); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
void GMainWindow::OnLoadComplete() { |
|
|
|
|
|
|
|
@ -336,7 +336,7 @@ private slots: |
|
|
|
void OnReinitializeKeys(ReinitializeKeyBehavior behavior); |
|
|
|
void OnLanguageChanged(const QString& locale); |
|
|
|
void OnMouseActivity(); |
|
|
|
void OnShutdownBegin(); |
|
|
|
bool OnShutdownBegin(); |
|
|
|
void OnShutdownBeginDialog(); |
|
|
|
void OnEmulationStopped(); |
|
|
|
void OnEmulationStopTimeExpired(); |
|
|
|
|