From b5b5ec2d38f95f0cd451137164078c0e093e4619 Mon Sep 17 00:00:00 2001 From: Tim Miller Date: Tue, 17 Jun 2025 17:24:56 +0900 Subject: [PATCH] [Avalonia.Native] Respect info.plist values for setActivationPolicy (#19066) * [Avalonia.Native] Respect info.plist values * Only set setActivationPolicy if it's different from the users default --- native/Avalonia.Native/src/OSX/app.mm | 2 -- native/Avalonia.Native/src/OSX/main.mm | 14 +++++++++++--- 2 files changed, 11 insertions(+), 5 deletions(-) diff --git a/native/Avalonia.Native/src/OSX/app.mm b/native/Avalonia.Native/src/OSX/app.mm index dfa4062f0a..5dc994fb6b 100644 --- a/native/Avalonia.Native/src/OSX/app.mm +++ b/native/Avalonia.Native/src/OSX/app.mm @@ -30,8 +30,6 @@ ComPtr _events; break; } - [[NSApplication sharedApplication] setActivationPolicy: AvnDesiredActivationPolicy]; - [[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"NSFullScreenMenuItemEverywhere"]; [[NSApplication sharedApplication] setHelpMenu: [[NSMenu new] initWithTitle:@""]]; diff --git a/native/Avalonia.Native/src/OSX/main.mm b/native/Avalonia.Native/src/OSX/main.mm index d1dbe9d186..0e3621517e 100644 --- a/native/Avalonia.Native/src/OSX/main.mm +++ b/native/Avalonia.Native/src/OSX/main.mm @@ -129,14 +129,22 @@ public: } } - virtual HRESULT SetShowInDock(int show) override + virtual HRESULT SetShowInDock(int show) override { START_COM_CALL; @autoreleasepool { - AvnDesiredActivationPolicy = show - ? NSApplicationActivationPolicyRegular : NSApplicationActivationPolicyAccessory; + NSApplication* app = [NSApplication sharedApplication]; + NSApplicationActivationPolicy requestedPolicy = show + ? NSApplicationActivationPolicyRegular + : NSApplicationActivationPolicyAccessory; + + if ([app activationPolicy] != requestedPolicy) + { + [app setActivationPolicy:requestedPolicy]; + } + return S_OK; } }