Browse Source

[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
pull/19075/head
Tim Miller 8 months ago
committed by GitHub
parent
commit
b5b5ec2d38
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 2
      native/Avalonia.Native/src/OSX/app.mm
  2. 14
      native/Avalonia.Native/src/OSX/main.mm

2
native/Avalonia.Native/src/OSX/app.mm

@ -30,8 +30,6 @@ ComPtr<IAvnApplicationEvents> _events;
break;
}
[[NSApplication sharedApplication] setActivationPolicy: AvnDesiredActivationPolicy];
[[NSUserDefaults standardUserDefaults] setBool:NO forKey:@"NSFullScreenMenuItemEverywhere"];
[[NSApplication sharedApplication] setHelpMenu: [[NSMenu new] initWithTitle:@""]];

14
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;
}
}

Loading…
Cancel
Save