diff --git a/rpcs3/rpcs3qt/game_list_frame.cpp b/rpcs3/rpcs3qt/game_list_frame.cpp index bb6fb12b1a..14dc1e7562 100644 --- a/rpcs3/rpcs3qt/game_list_frame.cpp +++ b/rpcs3/rpcs3qt/game_list_frame.cpp @@ -1632,6 +1632,7 @@ void game_list_frame::BatchCreatePPUCaches() pdlg->setAutoClose(false); pdlg->setAutoReset(false); pdlg->show(); + QApplication::processEvents(); u32 created = 0; @@ -1644,7 +1645,6 @@ void game_list_frame::BatchCreatePPUCaches() { if (pdlg->wasCanceled()) { - game_list_log.notice("PPU Cache Batch Creation was canceled"); break; } QApplication::processEvents(); @@ -1653,12 +1653,28 @@ void game_list_frame::BatchCreatePPUCaches() { while (!Emu.IsStopped()) { + if (pdlg->wasCanceled()) + { + break; + } QApplication::processEvents(); } pdlg->SetValue(++created); } } + if (pdlg->wasCanceled()) + { + game_list_log.notice("PPU Cache Batch Creation was canceled"); + + if (!Emu.IsStopped()) + { + QApplication::processEvents(); + Emu.Stop(); + } + return; + } + pdlg->setLabelText(tr("Created PPU Caches for %n title(s)", "", created)); pdlg->setCancelButtonText(tr("OK")); QApplication::beep();