From f78f22e439afd6ce8d884d451ddeb98dec2311a5 Mon Sep 17 00:00:00 2001 From: nerix Date: Sat, 8 Mar 2025 18:03:33 +0100 Subject: [PATCH] fix: set application policy on macOS for extension (#6043) --- CHANGELOG.md | 2 +- src/CMakeLists.txt | 2 ++ src/main.cpp | 7 +++++++ src/util/MacOsHelpers.h | 3 +++ src/util/MacOsHelpers.mm | 9 +++++++++ 5 files changed, 22 insertions(+), 1 deletion(-) create mode 100644 src/util/MacOsHelpers.h create mode 100644 src/util/MacOsHelpers.mm diff --git a/CHANGELOG.md b/CHANGELOG.md index ab6f3ee0..becf02c9 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -16,7 +16,7 @@ - Minor: Added Linux support for Live Notifications toasts. (#5881, #5971, #5976) - Minor: Messages can now be deleted from the context menu in a channel. (#5956) - Minor: Overlay windows now inherit the global zoom level and can be zoomed independently. (#6016) -- Minor: The `/watching` channel is now supported on all platforms. (#6031) +- Minor: The `/watching` channel is now supported on all platforms. (#6031, #6043) - Minor: The font weight of chat messages can now be changed. (#6037) - Minor: Messages from suspicious users can now be hidden when in streamer mode. This is enabled by default. (#6042) - Bugfix: Fixed a potential way to escape the Lua Plugin sandbox. (#5846) diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt index a8362688..6f666fc2 100644 --- a/src/CMakeLists.txt +++ b/src/CMakeLists.txt @@ -765,6 +765,8 @@ if (APPLE) set(MACOS_BUNDLE_ICON_FILE "${CMAKE_SOURCE_DIR}/resources/chatterino.icns") list(APPEND SOURCE_FILES "${MACOS_BUNDLE_ICON_FILE}") set_source_files_properties(${MACOS_BUNDLE_ICON_FILE} PROPERTIES MACOSX_PACKAGE_LOCATION "Resources") + + list(APPEND SOURCE_FILES util/MacOsHelpers.mm) endif () # Generate source groups for use in IDEs diff --git a/src/main.cpp b/src/main.cpp index 2b7fc924..3f90de45 100644 --- a/src/main.cpp +++ b/src/main.cpp @@ -15,6 +15,10 @@ #include "util/AttachToConsole.hpp" #include "util/IpcQueue.hpp" +#ifdef Q_OS_MACOS +# include "util/MacOsHelpers.h" +#endif + #include #include #include @@ -73,6 +77,9 @@ int main(int argc, char **argv) // run in gui mode or browser extension host mode if (args.shouldRunBrowserExtensionHost) { +#ifdef Q_OS_MACOS + ::chatterinoSetMacOsActivationPolicyProhibited(); +#endif runBrowserExtensionHost(); } else if (args.printVersion) diff --git a/src/util/MacOsHelpers.h b/src/util/MacOsHelpers.h new file mode 100644 index 00000000..a84b0a97 --- /dev/null +++ b/src/util/MacOsHelpers.h @@ -0,0 +1,3 @@ +#pragma once + +void chatterinoSetMacOsActivationPolicyProhibited(); diff --git a/src/util/MacOsHelpers.mm b/src/util/MacOsHelpers.mm new file mode 100644 index 00000000..4d6711fb --- /dev/null +++ b/src/util/MacOsHelpers.mm @@ -0,0 +1,9 @@ +#include "util/MacOsHelpers.h" + +#include + +void chatterinoSetMacOsActivationPolicyProhibited() +{ + [[NSApplication sharedApplication] setActivationPolicy:NSApplicationActivationPolicyProhibited]; +} +