Browse Source

Use hidden window when clearing parent...

...if `ShowInTaskbar == false`.
pull/5715/head
Steven Kirk 5 years ago
parent
commit
81fc978d64
  1. 12
      src/Windows/Avalonia.Win32/WindowImpl.cs

12
src/Windows/Avalonia.Win32/WindowImpl.cs

@ -581,8 +581,15 @@ namespace Avalonia.Win32
public void SetParent(IWindowImpl parent)
{
_parent = (WindowImpl)parent;
SetWindowLongPtr(_hwnd, (int)WindowLongParam.GWL_HWNDPARENT, _parent?._hwnd ?? IntPtr.Zero);
var parentHwnd = ((WindowImpl)parent)?._hwnd ?? IntPtr.Zero;
if (parentHwnd == IntPtr.Zero && !_windowProperties.ShowInTaskbar)
{
parentHwnd = OffscreenParentWindow.Handle;
_hiddenWindowIsParent = true;
}
SetWindowLongPtr(_hwnd, (int)WindowLongParam.GWL_HWNDPARENT, parentHwnd);
}
public void SetEnabled(bool enable) => EnableWindow(_hwnd, enable);
@ -1108,6 +1115,7 @@ namespace Avalonia.Win32
if (shown)
Hide();
_hiddenWindowIsParent = false;
SetParent(null);
if (shown)

Loading…
Cancel
Save