From b059b3a646ac2665ca5b6babbda2c71b9afb4630 Mon Sep 17 00:00:00 2001 From: spycrab Date: Fri, 20 Apr 2018 21:46:42 +0200 Subject: Qt: Pause on focus loss --- Source/Core/DolphinQt2/RenderWidget.cpp | 4 ++++ 1 file changed, 4 insertions(+) (limited to 'Source/Core/DolphinQt2/RenderWidget.cpp') diff --git a/Source/Core/DolphinQt2/RenderWidget.cpp b/Source/Core/DolphinQt2/RenderWidget.cpp index 255bff6cd7..8e38702b9d 100644 --- a/Source/Core/DolphinQt2/RenderWidget.cpp +++ b/Source/Core/DolphinQt2/RenderWidget.cpp @@ -116,9 +116,13 @@ bool RenderWidget::event(QEvent* event) break; case QEvent::WindowActivate: Host::GetInstance()->SetRenderFocus(true); + if (SConfig::GetInstance().m_PauseOnFocusLost && Core::GetState() == Core::State::Paused) + Core::SetState(Core::State::Running); break; case QEvent::WindowDeactivate: Host::GetInstance()->SetRenderFocus(false); + if (SConfig::GetInstance().m_PauseOnFocusLost && Core::GetState() == Core::State::Running) + Core::SetState(Core::State::Paused); break; case QEvent::Resize: { -- cgit v1.2.3 From c1dccdc0e5d2986f4ddf2b40292a1f9458b1d760 Mon Sep 17 00:00:00 2001 From: spycrab Date: Fri, 20 Apr 2018 22:11:54 +0200 Subject: Qt/RenderWidget: Fix getting painted over --- Source/Core/DolphinQt2/RenderWidget.cpp | 2 ++ 1 file changed, 2 insertions(+) (limited to 'Source/Core/DolphinQt2/RenderWidget.cpp') diff --git a/Source/Core/DolphinQt2/RenderWidget.cpp b/Source/Core/DolphinQt2/RenderWidget.cpp index 8e38702b9d..71a784a79d 100644 --- a/Source/Core/DolphinQt2/RenderWidget.cpp +++ b/Source/Core/DolphinQt2/RenderWidget.cpp @@ -90,6 +90,8 @@ bool RenderWidget::event(QEvent* event) { switch (event->type()) { + case QEvent::Paint: + return !autoFillBackground(); case QEvent::KeyPress: { QKeyEvent* ke = static_cast(event); -- cgit v1.2.3 From caa18edc794845b1cbf957754ac9dfc4211beb6d Mon Sep 17 00:00:00 2001 From: spycrab Date: Sun, 22 Apr 2018 10:56:15 +0200 Subject: Qt: Implement "Keep Window on top" --- Source/Core/DolphinQt2/RenderWidget.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) (limited to 'Source/Core/DolphinQt2/RenderWidget.cpp') diff --git a/Source/Core/DolphinQt2/RenderWidget.cpp b/Source/Core/DolphinQt2/RenderWidget.cpp index 71a784a79d..b1c1529baa 100644 --- a/Source/Core/DolphinQt2/RenderWidget.cpp +++ b/Source/Core/DolphinQt2/RenderWidget.cpp @@ -53,6 +53,9 @@ RenderWidget::RenderWidget(QWidget* parent) : QWidget(parent) connect(&Settings::Instance(), &Settings::HideCursorChanged, this, &RenderWidget::OnHideCursorChanged); OnHideCursorChanged(); + connect(&Settings::Instance(), &Settings::KeepWindowOnTopChanged, this, + &RenderWidget::OnKeepOnTopChanged); + OnKeepOnTopChanged(Settings::Instance().IsKeepWindowOnTopEnabled()); m_mouse_timer->start(MOUSE_HIDE_DELAY); SetFillBackground(true); @@ -70,6 +73,14 @@ void RenderWidget::OnHideCursorChanged() setCursor(Settings::Instance().GetHideCursor() ? Qt::BlankCursor : Qt::ArrowCursor); } +void RenderWidget::OnKeepOnTopChanged(bool top) +{ + setWindowFlags(top ? windowFlags() | Qt::WindowStaysOnTopHint : + windowFlags() & ~Qt::WindowStaysOnTopHint); + + show(); +} + void RenderWidget::HandleCursorTimer() { if (isActiveWindow()) -- cgit v1.2.3