MainWindow: Prevent Confirm On Stop dialog from being hidden

Set the Render Window as the parent of the Confirm On Stop confirmation
dialog when Keep Window On Top is enabled, ensuring it will always be
visible.

Previously, when Confirm On Stop and Keep Window On Top were both
enabled the Confirm On Stop dialog could be hidden by the render window
in the following situations:
* Clicking Stop in the Main Window
* Clicking the Main Window's close button
* Pressing the Stop hotkey while in FullScreen mode

This was particularly troublesome because the confirm dialog is modal,
preventing the user from moving the render window out of the way if it
was obscuring the dialog.

Fixes https://bugs.dolphin-emu.org/issues/13247.
This commit is contained in:
Dentomologist 2024-08-27 14:48:37 -07:00
parent 5af0ae25e6
commit 9bdf862460
1 changed files with 2 additions and 1 deletions

View File

@ -925,7 +925,8 @@ bool MainWindow::RequestStop()
} }
const bool rendered_widget_was_active = const bool rendered_widget_was_active =
m_render_widget->isActiveWindow() && !m_render_widget->isFullScreen(); Settings::Instance().IsKeepWindowOnTopEnabled() ||
(m_render_widget->isActiveWindow() && !m_render_widget->isFullScreen());
QWidget* confirm_parent = (!m_rendering_to_main && rendered_widget_was_active) ? QWidget* confirm_parent = (!m_rendering_to_main && rendered_widget_was_active) ?
m_render_widget : m_render_widget :
static_cast<QWidget*>(this); static_cast<QWidget*>(this);