diff --git a/rpcs3/Emu/RSX/GSRender.cpp b/rpcs3/Emu/RSX/GSRender.cpp index 883d4d6ced..d3d33a5ec5 100644 --- a/rpcs3/Emu/RSX/GSRender.cpp +++ b/rpcs3/Emu/RSX/GSRender.cpp @@ -20,7 +20,6 @@ GSRender::~GSRender() if (m_frame) { - m_frame->hide(); m_frame->close(); } } diff --git a/rpcs3/rpcs3qt/gs_frame.cpp b/rpcs3/rpcs3qt/gs_frame.cpp index aeb1109e8c..2f77d0dc0d 100644 --- a/rpcs3/rpcs3qt/gs_frame.cpp +++ b/rpcs3/rpcs3qt/gs_frame.cpp @@ -286,12 +286,17 @@ bool gs_frame::get_mouse_lock_state() void gs_frame::close() { - if (!Emu.IsStopped()) + Emu.CallAfter([this]() { - Emu.Stop(); - } + QWindow::hide(); // Workaround - Emu.CallAfter([this]() { deleteLater(); }); + if (!Emu.IsStopped()) + { + Emu.Stop(); + } + + deleteLater(); + }); } bool gs_frame::shown()