diff --git a/.github/workflows/test-macos.yml b/.github/workflows/test-macos.yml index 00e0bf10e..b35e7aea5 100644 --- a/.github/workflows/test-macos.yml +++ b/.github/workflows/test-macos.yml @@ -8,6 +8,7 @@ on: env: TWITCH_PUBSUB_SERVER_TAG: v1.0.7 + HTTPBOX_TAG: v0.2.1 QT_QPA_PLATFORM: minimal HOMEBREW_NO_AUTO_UPDATE: 1 HOMEBREW_NO_INSTALLED_DEPENDENTS_CHECK: 1 @@ -58,6 +59,13 @@ jobs: run: | brew install boost openssl rapidjson p7zip create-dmg cmake + - name: Install httpbox + run: | + curl -L -o httpbox.tar.xz "https://github.com/Chatterino/httpbox/releases/download/${{ env.HTTPBOX_TAG }}/httpbox-x86_64-apple-darwin.tar.xz" + tar -xJf httpbox.tar.xz + mv ./httpbox-x86_64-apple-darwin/httpbox /usr/local/bin + working-directory: /tmp + - name: Build run: | mkdir build-test @@ -83,10 +91,6 @@ jobs: curl -L -o server.key "https://github.com/Chatterino/twitch-pubsub-server-test/raw/${{ env.TWITCH_PUBSUB_SERVER_TAG }}/cmd/server/server.key" cd .. - - name: Cargo Install httpbox - run: | - cargo install --git https://github.com/kevinastone/httpbox --rev 89b971f - - name: Test timeout-minutes: 30 run: | diff --git a/.github/workflows/test-windows.yml b/.github/workflows/test-windows.yml index a81c69891..926d5f907 100644 --- a/.github/workflows/test-windows.yml +++ b/.github/workflows/test-windows.yml @@ -8,6 +8,7 @@ on: env: TWITCH_PUBSUB_SERVER_TAG: v1.0.7 + HTTPBOX_TAG: v0.2.1 QT_QPA_PLATFORM: minimal # Last known good conan version # 2.0.3 has a bug on Windows (conan-io/conan#13606) @@ -111,6 +112,13 @@ jobs: mkdir -Force build-test/bin cp "$((ls $Env:VCToolsRedistDir/onecore/x64 -Filter '*.CRT')[0].FullName)/*" build-test/bin + - name: Install httpbox + run: | + mkdir httpbox + Invoke-WebRequest -Uri "https://github.com/Chatterino/httpbox/releases/download/${{ env.HTTPBOX_TAG }}/httpbox-x86_64-pc-windows-msvc.zip" -outfile "httpbox.zip" + Expand-Archive httpbox.zip -DestinationPath httpbox + rm httpbox.zip + - name: Build run: | cmake ` @@ -139,14 +147,10 @@ jobs: Invoke-WebRequest -Uri "https://github.com/Chatterino/twitch-pubsub-server-test/raw/${{ env.TWITCH_PUBSUB_SERVER_TAG }}/cmd/server/server.key" -outfile "server.key" cd .. - - name: Cargo Install httpbox - run: | - cargo install --git https://github.com/kevinastone/httpbox --rev 89b971f - - name: Test timeout-minutes: 30 run: | - httpbox --port 9051 & + ..\httpbox\httpbox.exe --port 9051 & cd ..\pubsub-server-test .\server.exe 127.0.0.1:9050 & cd ..\build-test diff --git a/CHANGELOG.md b/CHANGELOG.md index 4232bdb57..1aa0e5a5a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,7 +5,7 @@ - Major: Add option to show pronouns in user card. (#5442, #5583) - Major: Release plugins alpha. (#5288) - Major: Improve high-DPI support on Windows. (#4868, #5391) -- Major: Added transparent overlay window (default keybind: CTRL + ALT + N). (#4746, #5643) +- Major: Added transparent overlay window (default keybind: CTRL + ALT + N). (#4746, #5643, #5659) - Minor: Removed the Ctrl+Shift+L hotkey for toggling the "live only" tab visibility state. (#5530) - Minor: Add support for Shared Chat messages. Shared chat messages can be filtered with the `flags.shared` filter variable, or with search using `is:shared`. Some messages like subscriptions are filtered on purpose to avoid confusion for the broadcaster. If you have both channels participating in Shared Chat open, only one of the message triggering your highlight will trigger. (#5606, #5625) - Minor: Moved tab visibility control to a submenu, without any toggle actions. (#5530) diff --git a/src/singletons/helper/GifTimer.cpp b/src/singletons/helper/GifTimer.cpp index 07e255381..42f1d326a 100644 --- a/src/singletons/helper/GifTimer.cpp +++ b/src/singletons/helper/GifTimer.cpp @@ -26,6 +26,7 @@ void GIFTimer::initialize() QObject::connect(&this->timer, &QTimer::timeout, [this] { if (getSettings()->animationsWhenFocused && + this->openOverlayWindows_ == 0 && QApplication::activeWindow() == nullptr) { return; diff --git a/src/singletons/helper/GifTimer.hpp b/src/singletons/helper/GifTimer.hpp index ecb741be7..a8004c8c0 100644 --- a/src/singletons/helper/GifTimer.hpp +++ b/src/singletons/helper/GifTimer.hpp @@ -18,9 +18,21 @@ public: return this->position_; } + void registerOpenOverlayWindow() + { + this->openOverlayWindows_++; + } + + void unregisterOpenOverlayWindow() + { + assert(this->openOverlayWindows_ >= 1); + this->openOverlayWindows_--; + } + private: QTimer timer; long unsigned position_{}; + size_t openOverlayWindows_ = 0; }; } // namespace chatterino diff --git a/src/widgets/OverlayWindow.cpp b/src/widgets/OverlayWindow.cpp index 94811fa87..b6cff796e 100644 --- a/src/widgets/OverlayWindow.cpp +++ b/src/widgets/OverlayWindow.cpp @@ -4,6 +4,7 @@ #include "common/FlagsEnum.hpp" #include "common/Literals.hpp" #include "controllers/hotkeys/HotkeyController.hpp" +#include "singletons/Emotes.hpp" #include "singletons/Settings.hpp" #include "singletons/WindowManager.hpp" #include "widgets/BaseWidget.hpp" @@ -166,6 +167,7 @@ OverlayWindow::OverlayWindow(IndirectChannel channel, this->addShortcuts(); this->triggerFirstActivation(); + getApp()->getEmotes()->getGIFTimer().registerOpenOverlayWindow(); } OverlayWindow::~OverlayWindow() @@ -173,6 +175,7 @@ OverlayWindow::~OverlayWindow() #ifdef Q_OS_WIN ::DestroyCursor(this->sizeAllCursor_); #endif + getApp()->getEmotes()->getGIFTimer().unregisterOpenOverlayWindow(); } void OverlayWindow::applyTheme() diff --git a/tests/README.md b/tests/README.md index 47ac1b202..e5d73c1ad 100644 --- a/tests/README.md +++ b/tests/README.md @@ -1,10 +1,7 @@ -To run all tests you will need to run the `kennethreitz/httpbin` and `ghcr.io/chatterino/twitch-pubsub-server-test:latest` docker images. +# Pre-requisites to running tests -For example: +- Download & run [httpbox](https://github.com/Chatterino/httpbox/releases/latest) + `httpbox --port 9051` -```bash -docker run --network=host --detach ghcr.io/chatterino/twitch-pubsub-server-test:latest -docker run -p 9051:80 --detach kennethreitz/httpbin -``` - -If you're unable to use docker, you can use [httpbox](https://github.com/kevinastone/httpbox) (`httpbox --port 9051`) and [Chatterino/twitch-pubsub-server-test](https://github.com/Chatterino/twitch-pubsub-server-test/releases/latest) manually. +- Download & run [twitch-pubsub-server-test](https://github.com/Chatterino/twitch-pubsub-server-test/releases/latest) + `twitch-pubsub-server-test`