From a705884342adb5d47ebcad4e9da13bfb1ea503c6 Mon Sep 17 00:00:00 2001 From: Stenzek Date: Fri, 24 Nov 2023 14:26:55 +1000 Subject: [PATCH] Qt: Fix possible race when showing confirm dialog --- src/duckstation-qt/mainwindow.cpp | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/src/duckstation-qt/mainwindow.cpp b/src/duckstation-qt/mainwindow.cpp index c1f2a7d96..92bfee9e3 100644 --- a/src/duckstation-qt/mainwindow.cpp +++ b/src/duckstation-qt/mainwindow.cpp @@ -367,7 +367,7 @@ void MainWindow::createDisplayWidget(bool fullscreen, bool render_to_main, bool { // See lameland comment above. if (use_main_window_pos && !s_use_central_widget) - container->move(pos()); + container->setGeometry(geometry()); else restoreDisplayWindowGeometryFromConfig(); container->showNormal(); @@ -2911,8 +2911,14 @@ MainWindow::SystemLock MainWindow::pauseAndLockSystem() if (was_fullscreen) { g_emu_thread->setFullscreen(false, false); - while (s_system_valid && g_emu_thread->isFullscreen()) - QApplication::processEvents(QEventLoop::ExcludeUserInputEvents, 1); + + // Container could change... thanks Wayland. + QWidget* container; + while (s_system_valid && + (g_emu_thread->isFullscreen() || !(container = getDisplayContainer()) || container->isFullScreen())) + { + QApplication::processEvents(QEventLoop::ExcludeUserInputEvents); + } } if (!was_paused)