Browse Source

Use ShowWindowCommand.Hide when positioning a win32 window that has not yet been shown (#15035)

pull/15079/head
Tom Edwards 2 years ago
committed by GitHub
parent
commit
8cf28faf80
No known key found for this signature in database GPG Key ID: B5690EEEBB952194
  1. 3
      src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs
  2. 2
      src/Windows/Avalonia.Win32/WindowImpl.cs

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

@ -618,6 +618,9 @@ namespace Avalonia.Win32
SizeCommand.Maximized => WindowState.Maximized, SizeCommand.Maximized => WindowState.Maximized,
SizeCommand.Minimized => WindowState.Minimized, SizeCommand.Minimized => WindowState.Minimized,
_ when _isFullScreenActive => WindowState.FullScreen, _ when _isFullScreenActive => WindowState.FullScreen,
// Ignore state changes for unshown windows. We always tell Windows that we are hidden
// until shown, so the OS value should be ignored while we are in the unshown state.
_ when !_shown => _lastWindowState,
_ => WindowState.Normal, _ => WindowState.Normal,
}; };

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

@ -607,7 +607,7 @@ namespace Avalonia.Win32
windowPlacement.NormalPosition = requestedWindowRect; windowPlacement.NormalPosition = requestedWindowRect;
windowPlacement.ShowCmd = _lastWindowState switch windowPlacement.ShowCmd = !_shown ? ShowWindowCommand.Hide : _lastWindowState switch
{ {
WindowState.Minimized => ShowWindowCommand.ShowMinNoActive, WindowState.Minimized => ShowWindowCommand.ShowMinNoActive,
WindowState.Maximized => ShowWindowCommand.ShowMaximized, WindowState.Maximized => ShowWindowCommand.ShowMaximized,

Loading…
Cancel
Save