Browse Source

Fix macOS ActivatableLifetime events (#17608)

pull/17630/head
Julien Lebosquain 1 year ago
committed by GitHub
parent
commit
c851c7a310
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 10
      native/Avalonia.Native/src/OSX/app.mm
  2. 14
      src/Avalonia.Native/AvaloniaNativeApplicationPlatform.cs
  3. 2
      src/Avalonia.Native/avn.idl

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

@ -59,6 +59,16 @@ ComPtr<IAvnApplicationEvents> _events;
_events->OnUnhide();
}
- (void) applicationDidBecomeActive:(NSNotification *) notification
{
_events->OnActivate();
}
- (void) applicationDidResignActive:(NSNotification *) notification
{
_events->OnDeactivate();
}
- (void)application:(NSApplication *)sender openFiles:(NSArray<NSString *> *)filenames
{
auto array = CreateAvnStringArray(filenames);

14
src/Avalonia.Native/AvaloniaNativeApplicationPlatform.cs

@ -87,18 +87,26 @@ namespace Avalonia.Native
}
void IAvnApplicationEvents.OnHide()
{
}
void IAvnApplicationEvents.OnUnhide()
{
}
void IAvnApplicationEvents.OnActivate()
{
if (AvaloniaLocator.Current.GetService<IActivatableLifetime>() is ActivatableLifetimeBase lifetime)
{
lifetime.OnDeactivated(ActivationKind.Background);
lifetime.OnActivated(ActivationKind.Background);
}
}
void IAvnApplicationEvents.OnUnhide()
void IAvnApplicationEvents.OnDeactivate()
{
if (AvaloniaLocator.Current.GetService<IActivatableLifetime>() is ActivatableLifetimeBase lifetime)
{
lifetime.OnActivated(ActivationKind.Background);
lifetime.OnDeactivated(ActivationKind.Background);
}
}

2
src/Avalonia.Native/avn.idl

@ -1142,6 +1142,8 @@ interface IAvnApplicationEvents : IUnknown
void OnReopen ();
void OnHide ();
void OnUnhide ();
void OnActivate();
void OnDeactivate();
}
[uuid(b4284791-055b-4313-8c2e-50f0a8c72ce9)]

Loading…
Cancel
Save