Skip to content
Permalink
Browse files
Merge pull request #11211 from jordan-woyak/fix-focus-resume-after-ma…
…nual-pause

DolphinQt: Fix window focus from unpausing after a manual pause.
  • Loading branch information
AdmiralCurtiss committed Oct 28, 2022
2 parents c624629 + 4fc05dd commit 8001535
Show file tree
Hide file tree
Showing 2 changed files with 7 additions and 1 deletion.
@@ -397,9 +397,11 @@ bool RenderWidget::event(QEvent* event)
// Note that this event in Windows is not always aligned to the window that is highlighted,
// it's the window that has keyboard and mouse focus
case QEvent::WindowActivate:
if (Config::Get(Config::MAIN_PAUSE_ON_FOCUS_LOST) && Core::GetState() == Core::State::Paused)
if (m_should_unpause_on_focus && Core::GetState() == Core::State::Paused)
Core::SetState(Core::State::Running);

m_should_unpause_on_focus = false;

UpdateCursor();

// Avoid "race conditions" with message boxes
@@ -425,7 +427,10 @@ bool RenderWidget::event(QEvent* event)
// is waiting for us to finish showing a panic alert (with that panic alert likely being
// the cause of this event), so trying to pause the core would cause a deadlock
if (!Core::IsCPUThread() && !Core::IsGPUThread())
{
m_should_unpause_on_focus = true;
Core::SetState(Core::State::Paused);
}
}

emit FocusChanged(false);
@@ -51,4 +51,5 @@ class RenderWidget final : public QWidget
bool m_lock_cursor_on_next_activation = false;
bool m_dont_lock_cursor_on_show = false;
bool m_waiting_for_message_box = false;
bool m_should_unpause_on_focus = false;
};

0 comments on commit 8001535

Please sign in to comment.