From ded5caa41ef00cd08f19233cf723ebd6c6f88d62 Mon Sep 17 00:00:00 2001 From: Emmanuel Hansen Date: Tue, 18 Jun 2024 09:07:25 +0000 Subject: [PATCH] Win32 - set internal _shown flag if ShowWindow will make window visible (#16029) * win32- set internal _shown flag if ShowWindow will make window visible * check window visibility state from WM_WINDOWPOSCHANGED message --- src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs b/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs index a8531088eb..35b823d34c 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs @@ -773,6 +773,17 @@ namespace Avalonia.Win32 return UiaCoreProviderApi.UiaReturnRawElementProvider(_hwnd, wParam, lParam, node); } break; + case WindowsMessage.WM_WINDOWPOSCHANGED: + var winPos = Marshal.PtrToStructure(lParam); + if((winPos.flags & (uint)SetWindowPosFlags.SWP_SHOWWINDOW) != 0) + { + _shown = true; + } + else if ((winPos.flags & (uint)SetWindowPosFlags.SWP_HIDEWINDOW) != 0) + { + _shown = false; + } + break; } #if USE_MANAGED_DRAG