diff --git a/rpcs3/rpcs3qt/gs_frame.cpp b/rpcs3/rpcs3qt/gs_frame.cpp index 7c906ecc3a..e64b3cfd1b 100644 --- a/rpcs3/rpcs3qt/gs_frame.cpp +++ b/rpcs3/rpcs3qt/gs_frame.cpp @@ -456,15 +456,21 @@ bool gs_frame::event(QEvent* ev) toggle_fullscreen(); } - int result; + int result = QMessageBox::Yes; + atomic_t called = false; - Emu.CallAfter([this, &result]() + Emu.CallAfter([this, &result, &called]() { m_gui_settings->ShowConfirmationBox(tr("Exit Game?"), tr("Do you really want to exit the game?\n\nAny unsaved progress will be lost!\n"), gui::ib_confirm_exit, &result, nullptr); + + called = true; + called.notify_one(); }); + called.wait(false); + if (result != QMessageBox::Yes) { return true; diff --git a/rpcs3/rpcs3qt/main_window.cpp b/rpcs3/rpcs3qt/main_window.cpp index b42664edcd..9378551766 100644 --- a/rpcs3/rpcs3qt/main_window.cpp +++ b/rpcs3/rpcs3qt/main_window.cpp @@ -242,7 +242,7 @@ void main_window::Boot(const std::string& path, const std::string& title_id, boo { if (!Emu.IsStopped()) { - int result; + int result = QMessageBox::Yes; guiSettings->ShowConfirmationBox(tr("Close Running Game?"), tr("Booting another game will close the current game.\nDo you really want to boot another game?\n\nAny unsaved progress will be lost!\n"), gui::ib_confirm_boot, &result, this); @@ -1801,7 +1801,7 @@ void main_window::closeEvent(QCloseEvent* closeEvent) { if (!Emu.IsStopped() && guiSettings->GetValue(gui::ib_confirm_exit).toBool()) { - int result; + int result = QMessageBox::Yes; guiSettings->ShowConfirmationBox(tr("Exit RPCS3?"), tr("A game is currently running. Do you really want to close RPCS3?\n\nAny unsaved progress will be lost!\n"),