diff --git a/rpcs3/Emu/System.cpp b/rpcs3/Emu/System.cpp index 0c5c403f7c..0d7578a867 100644 --- a/rpcs3/Emu/System.cpp +++ b/rpcs3/Emu/System.cpp @@ -1957,7 +1957,7 @@ void Emulator::Stop(bool restart) // Always Enable display sleep, not only if it was prevented. enable_display_sleep(); - if (Quit(g_cfg.misc.autoexit.get())) + if (!m_force_boot && Quit(g_cfg.misc.autoexit.get())) { return; } diff --git a/rpcs3/rpcs3qt/gs_frame.cpp b/rpcs3/rpcs3qt/gs_frame.cpp index 4f85127ed5..420c9bca00 100644 --- a/rpcs3/rpcs3qt/gs_frame.cpp +++ b/rpcs3/rpcs3qt/gs_frame.cpp @@ -285,7 +285,11 @@ bool gs_frame::get_mouse_lock_state() void gs_frame::close() { - Emu.Stop(); + if (!Emu.IsStopped()) + { + Emu.Stop(); + } + Emu.CallAfter([this]() { deleteLater(); }); }