Browse Source

Add OSX implementation.

pull/5063/head
Dan Walmsley 6 years ago
parent
commit
a088910f31
  1. 8
      native/Avalonia.Native/src/OSX/window.mm
  2. 4
      src/Avalonia.Native/PopupImpl.cs
  3. 4
      src/Avalonia.Native/WindowImplBase.cs
  4. 2
      src/Avalonia.Native/avn.idl

8
native/Avalonia.Native/src/OSX/window.mm

@ -106,13 +106,13 @@ public:
return Window;
}
virtual HRESULT Show() override
virtual HRESULT Show(bool activate) override
{
@autoreleasepool
{
SetPosition(lastPositionSet);
UpdateStyle();
if(ShouldTakeFocusOnShow())
if(ShouldTakeFocusOnShow() && activate)
{
[Window makeKeyAndOrderFront:Window];
[NSApp activateIgnoringOtherApps:YES];
@ -561,11 +561,11 @@ private:
}
}
virtual HRESULT Show () override
virtual HRESULT Show (bool activate) override
{
@autoreleasepool
{
WindowBaseImpl::Show();
WindowBaseImpl::Show(activate);
HideOrShowTrafficLights();

4
src/Avalonia.Native/PopupImpl.cs

@ -60,14 +60,14 @@ namespace Avalonia.Native
}
}
public override void Show()
public override void Show(bool activate)
{
var parent = _parent;
while (parent is PopupImpl p)
parent = p._parent;
if (parent is WindowImpl w)
w.Native.TakeFocusFromChildren();
base.Show();
base.Show(false);
}
public override IPopupImpl CreatePopup() => new PopupImpl(_factory, _opts, _glFeature, this);

4
src/Avalonia.Native/WindowImplBase.cs

@ -351,9 +351,9 @@ namespace Avalonia.Native
}
public virtual void Show()
public virtual void Show(bool activate)
{
_native.Show();
_native.Show(activate.AsComBool());
}

2
src/Avalonia.Native/avn.idl

@ -225,7 +225,7 @@ interface IAvnString : IUnknown
[uuid(e5aca675-02b7-4129-aa79-d6e417210bda)]
interface IAvnWindowBase : IUnknown
{
HRESULT Show();
HRESULT Show(bool activate);
HRESULT Hide();
HRESULT Close();
HRESULT Activate();

Loading…
Cancel
Save