diff --git a/CHANGELOG.md b/CHANGELOG.md index 467c2810eab..e7674de6dc6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -27,6 +27,7 @@ - Bugfix: Fixed a crash when tab completing while having an invalid plugin loaded. (#5401) - Bugfix: Fixed windows on Windows not saving correctly when snapping them to the edges. (#5478) - Bugfix: Fixed `/clearmessages` not working with more than one window. (#5489) +- Bugfix: Fixed splits staying paused after unfocusing Chatterino in certain configurations. (#5504) - Dev: Update Windows build from Qt 6.5.0 to Qt 6.7.1. (#5420) - Dev: Update vcpkg build Qt from 6.5.0 to 6.7.0, boost from 1.83.0 to 1.85.0, openssl from 3.1.3 to 3.3.0. (#5422) - Dev: Unsingletonize `ISoundController`. (#5462) diff --git a/src/widgets/Window.cpp b/src/widgets/Window.cpp index a1a646c4b6d..f7df6bcb0e0 100644 --- a/src/widgets/Window.cpp +++ b/src/widgets/Window.cpp @@ -43,6 +43,7 @@ #include #include #include +#include #include #include #include @@ -112,6 +113,12 @@ bool Window::event(QEvent *event) } case QEvent::WindowDeactivate: { + for (const auto &split : + this->notebook_->getSelectedPage()->getSplits()) + { + split->unpause(); + } + auto *page = this->notebook_->getSelectedPage(); if (page != nullptr) diff --git a/src/widgets/splits/Split.cpp b/src/widgets/splits/Split.cpp index 36c6888d4de..9d4ff5ed46f 100644 --- a/src/widgets/splits/Split.cpp +++ b/src/widgets/splits/Split.cpp @@ -1599,6 +1599,13 @@ void Split::setInputReply(const MessagePtr &reply) this->input_->setReply(reply); } +void Split::unpause() +{ + this->view_->unpause(PauseReason::KeyboardModifier); + this->view_->unpause(PauseReason::DoubleClick); + // Mouse intentionally left out, we may still have the mouse over the split +} + } // namespace chatterino QDebug operator<<(QDebug dbg, const chatterino::Split &split) diff --git a/src/widgets/splits/Split.hpp b/src/widgets/splits/Split.hpp index bc98de5e708..ab6322d5cdd 100644 --- a/src/widgets/splits/Split.hpp +++ b/src/widgets/splits/Split.hpp @@ -77,6 +77,9 @@ class Split : public BaseWidget void setInputReply(const MessagePtr &reply); + // This is called on window focus lost + void unpause(); + static pajlada::Signals::Signal modifierStatusChanged; static Qt::KeyboardModifiers modifierStatus;