Skip to content

Commit 5261367

Browse files
committed
check window visibility state from WM_WINDOWPOSCHANGED message
1 parent 16c49f2 commit 5261367

File tree

2 files changed

+11
-5
lines changed

2 files changed

+11
-5
lines changed

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

+11
Original file line numberDiff line numberDiff line change
@@ -790,6 +790,17 @@ protected virtual unsafe IntPtr AppWndProc(IntPtr hWnd, uint msg, IntPtr wParam,
790790
return UiaCoreProviderApi.UiaReturnRawElementProvider(_hwnd, wParam, lParam, node);
791791
}
792792
break;
793+
case WindowsMessage.WM_WINDOWPOSCHANGED:
794+
var winPos = Marshal.PtrToStructure<WINDOWPOS>(lParam);
795+
if((winPos.flags & (uint)SetWindowPosFlags.SWP_SHOWWINDOW) != 0)
796+
{
797+
_shown = true;
798+
}
799+
else if ((winPos.flags & (uint)SetWindowPosFlags.SWP_HIDEWINDOW) != 0)
800+
{
801+
_shown = false;
802+
}
803+
break;
793804
}
794805

795806
#if USE_MANAGED_DRAG

src/Windows/Avalonia.Win32/WindowImpl.cs

-5
Original file line numberDiff line numberDiff line change
@@ -1203,11 +1203,6 @@ private void ShowWindow(WindowState state, bool activate)
12031203
if (command.HasValue)
12041204
{
12051205
UnmanagedMethods.ShowWindow(_hwnd, command.Value);
1206-
1207-
if (!_shown && command.Value != ShowWindowCommand.Minimize && GetStyle().HasFlag(WindowStyles.WS_VISIBLE))
1208-
{
1209-
_shown = true;
1210-
}
12111206
}
12121207

12131208
if (state == WindowState.Maximized)

0 commit comments

Comments
 (0)