From 0608ad6008d2032311cc1be03405bfb33f9ab537 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 5 May 2020 17:52:09 -0300 Subject: [PATCH] prevent restoring window styles from overwriting windowstates. --- src/Windows/Avalonia.Win32/WindowImpl.cs | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 51d60cc970..a32bc7d9b3 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -586,7 +586,8 @@ namespace Avalonia.Win32 // repainted. Better-looking methods welcome. _isFullScreenActive = false; - SetStyle(_savedWindowInfo.Style, false); + var windowStates = GetWindowStateStyles(); + SetStyle((_savedWindowInfo.Style & ~WindowStateMask) | windowStates, false); SetExtendedStyle(_savedWindowInfo.ExStyle, false); // On restore, resize to the previous saved rect size. @@ -668,6 +669,13 @@ namespace Avalonia.Win32 } } + private const WindowStyles WindowStateMask = (WindowStyles.WS_MAXIMIZE | WindowStyles.WS_MINIMIZE); + + private WindowStyles GetWindowStateStyles () + { + return GetStyle() & WindowStateMask; + } + private WindowStyles GetStyle() { if (_isFullScreenActive)