Browse Source

Added MonoMacPlatform.ShowInDock

pull/1176/merge
Nikita Tsukanov 9 years ago
parent
commit
4e9654165f
  1. 26
      src/OSX/Avalonia.MonoMac/MonoMacPlatform.cs

26
src/OSX/Avalonia.MonoMac/MonoMacPlatform.cs

@ -14,6 +14,9 @@ namespace Avalonia.MonoMac
internal readonly MouseDevice MouseDevice = new MouseDevice(); internal readonly MouseDevice MouseDevice = new MouseDevice();
readonly KeyboardDevice _keyboardDevice = new KeyboardDevice(); readonly KeyboardDevice _keyboardDevice = new KeyboardDevice();
internal static NSApplication App; internal static NSApplication App;
private static bool s_monoMacInitialized;
private static bool s_showInDock = true;
void DoInitialize() void DoInitialize()
{ {
AvaloniaLocator.CurrentMutable AvaloniaLocator.CurrentMutable
@ -26,7 +29,7 @@ namespace Avalonia.MonoMac
.Bind<ISystemDialogImpl>().ToSingleton<SystemDialogsImpl>() .Bind<ISystemDialogImpl>().ToSingleton<SystemDialogsImpl>()
.Bind<IPlatformThreadingInterface>().ToConstant(PlatformThreadingInterface.Instance); .Bind<IPlatformThreadingInterface>().ToConstant(PlatformThreadingInterface.Instance);
InitializeCocoaApp(); InitializeMonoMac();
} }
public static void Initialize() public static void Initialize()
@ -36,12 +39,29 @@ namespace Avalonia.MonoMac
} }
void InitializeCocoaApp() void InitializeMonoMac()
{ {
if(s_monoMacInitialized)
return;
NSApplication.Init(); NSApplication.Init();
App = NSApplication.SharedApplication; App = NSApplication.SharedApplication;
App.ActivationPolicy = NSApplicationActivationPolicy.Regular; UpdateActivationPolicy();
s_monoMacInitialized = true;
}
static void UpdateActivationPolicy() => App.ActivationPolicy = ShowInDock
? NSApplicationActivationPolicy.Regular
: NSApplicationActivationPolicy.Accessory;
public static bool ShowInDock
{
get => s_showInDock;
set
{
s_showInDock = value;
if (s_monoMacInitialized)
UpdateActivationPolicy();
}
} }

Loading…
Cancel
Save