Qt: fix GracefulShutdown regression

By replacing Emu.Stop() with GracefulShutdown() in gs_frame::close(), the game window was now unknowingly closed recursively, causing RPCS3 to crash in some cases.
Let's just ignore any consecutive calls to close() from now on.
Also don't close the window internally on a close event. request a shutdown instead.
This commit is contained in:
Megamouse 2022-04-01 03:44:05 +02:00
parent 36e3939ec2
commit 4f12f8b04f
3 changed files with 42 additions and 7 deletions

View file

@ -73,6 +73,10 @@ extern void process_qt_events()
{
if (thread_ctrl::is_main())
{
// NOTE:
// I noticed that calling this from an Emu callback can cause the
// caller to get stuck for a while during newly opened Qt dialogs.
// Adding a timeout here doesn't seem to do anything in that case.
QApplication::processEvents();
}
}