diff options
Diffstat (limited to 'Ladybird/WebContent')
-rw-r--r-- | Ladybird/WebContent/CMakeLists.txt | 4 | ||||
-rw-r--r-- | Ladybird/WebContent/MacOSSetup.h | 9 | ||||
-rw-r--r-- | Ladybird/WebContent/MacOSSetup.mm | 15 | ||||
-rw-r--r-- | Ladybird/WebContent/main.cpp | 9 |
4 files changed, 37 insertions, 0 deletions
diff --git a/Ladybird/WebContent/CMakeLists.txt b/Ladybird/WebContent/CMakeLists.txt index d8c9c1b780..71c28a143e 100644 --- a/Ladybird/WebContent/CMakeLists.txt +++ b/Ladybird/WebContent/CMakeLists.txt @@ -17,6 +17,10 @@ set(WEBCONTENT_SOURCES main.cpp ) +if (APPLE) + list(APPEND WEBCONTENT_SOURCES MacOSSetup.mm) +endif() + qt_add_executable(WebContent ${WEBCONTENT_SOURCES}) target_include_directories(WebContent PRIVATE ${SERENITY_SOURCE_DIR}/Userland/Services/) diff --git a/Ladybird/WebContent/MacOSSetup.h b/Ladybird/WebContent/MacOSSetup.h new file mode 100644 index 0000000000..6125379158 --- /dev/null +++ b/Ladybird/WebContent/MacOSSetup.h @@ -0,0 +1,9 @@ +/* + * Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#pragma once + +void prohibit_interaction(); diff --git a/Ladybird/WebContent/MacOSSetup.mm b/Ladybird/WebContent/MacOSSetup.mm new file mode 100644 index 0000000000..e323c58adf --- /dev/null +++ b/Ladybird/WebContent/MacOSSetup.mm @@ -0,0 +1,15 @@ +/* + * Copyright (c) 2023, Tim Flynn <trflynn89@serenityos.org> + * + * SPDX-License-Identifier: BSD-2-Clause + */ + +#include "MacOSSetup.h" +#import <AppKit/NSApplication.h> + +void prohibit_interaction() +{ + // This prevents WebContent from being displayed in the macOS Dock and becoming the focused, + // interactable application upon launch. + [NSApp setActivationPolicy:NSApplicationActivationPolicyProhibited]; +} diff --git a/Ladybird/WebContent/main.cpp b/Ladybird/WebContent/main.cpp index 9b805652cc..b715203079 100644 --- a/Ladybird/WebContent/main.cpp +++ b/Ladybird/WebContent/main.cpp @@ -11,6 +11,7 @@ #include "../Utilities.h" #include "../WebSocketClientManagerLadybird.h" #include <AK/LexicalPath.h> +#include <AK/Platform.h> #include <LibCore/ArgsParser.h> #include <LibCore/EventLoop.h> #include <LibCore/LocalServer.h> @@ -31,6 +32,10 @@ #include <WebContent/PageHost.h> #include <WebContent/WebDriverConnection.h> +#if defined(AK_OS_MACOS) +# include "MacOSSetup.h" +#endif + static ErrorOr<void> load_content_filters(); static ErrorOr<void> load_autoplay_allowlist(); @@ -40,6 +45,10 @@ ErrorOr<int> serenity_main(Main::Arguments arguments) { QGuiApplication app(arguments.argc, arguments.argv); +#if defined(AK_OS_MACOS) + prohibit_interaction(); +#endif + Core::EventLoopManager::install(*new Ladybird::EventLoopManagerQt); Core::EventLoop event_loop; |