From ca305adea0e26b5d94a2f16d575b6952735b4e20 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 4 Jul 2016 21:20:06 +0200 Subject: [PATCH] Don't send resize message on minimize. Fixes #571. --- src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs | 9 +++++++++ src/Windows/Avalonia.Win32/WindowImpl.cs | 4 +++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs index 141c2e4653..6635882d4a 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -75,6 +75,15 @@ namespace Avalonia.Win32.Interop SWP_RESIZE = SWP_NOACTIVATE | SWP_NOMOVE | SWP_NOZORDER } + public enum SizeCommand + { + Restored, + Minimized, + Maximized, + MaxShow, + MaxHide, + } + public enum ShowWindowCommand { Hide = 0, diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 08076cee52..55c6048b1f 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -552,7 +552,9 @@ namespace Avalonia.Win32 return IntPtr.Zero; case UnmanagedMethods.WindowsMessage.WM_SIZE: - if (Resized != null) + if (Resized != null && + (wParam == (IntPtr)UnmanagedMethods.SizeCommand.Restored || + wParam == (IntPtr)UnmanagedMethods.SizeCommand.Maximized)) { var clientSize = new Size((int)lParam & 0xffff, (int)lParam >> 16); Resized(clientSize / Scaling);