diff --git a/src/Avalonia.Controls/Window.cs b/src/Avalonia.Controls/Window.cs index 134fda2793..3cbfdbd657 100644 --- a/src/Avalonia.Controls/Window.cs +++ b/src/Avalonia.Controls/Window.cs @@ -148,9 +148,6 @@ namespace Avalonia.Controls impl.WindowStateChanged = HandleWindowStateChanged; _maxPlatformClientSize = PlatformImpl?.MaxClientSize ?? default(Size); Screens = new Screens(PlatformImpl?.Screen); - - if (PlatformImpl != null) - PlatformImpl.WindowStateChanged = s => WindowState = s; } /// @@ -321,11 +318,13 @@ namespace Avalonia.Controls protected virtual void HandleWindowStateChanged(WindowState state) { + WindowState = state; + if (state == WindowState.Minimized) { Renderer.Stop(); } - else if (state == WindowState.Normal) + else { Renderer.Start(); } diff --git a/src/Avalonia.DesignerSupport/Remote/Stubs.cs b/src/Avalonia.DesignerSupport/Remote/Stubs.cs index 72fce0d921..e749d10468 100644 --- a/src/Avalonia.DesignerSupport/Remote/Stubs.cs +++ b/src/Avalonia.DesignerSupport/Remote/Stubs.cs @@ -33,7 +33,6 @@ namespace Avalonia.DesignerSupport.Remote public Action PositionChanged { get; set; } public WindowState WindowState { get; set; } public Action WindowStateChanged { get; set; } - public IRenderer CreateRenderer(IRenderRoot root) => new ImmediateRenderer(root); public void Dispose() { diff --git a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs index a48d851e00..86dcec410b 100644 --- a/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs +++ b/src/Windows/Avalonia.Win32/Interop/UnmanagedMethods.cs @@ -104,30 +104,6 @@ namespace Avalonia.Win32.Interop ForceMinimize = 11 } - public enum SysCommands - { - SC_SIZE = 0xF000, - SC_MOVE = 0xF010, - SC_MINIMIZE = 0xF020, - SC_MAXIMIZE = 0xF030, - SC_NEXTWINDOW = 0xF040, - SC_PREVWINDOW = 0xF050, - SC_CLOSE = 0xF060, - SC_VSCROLL = 0xF070, - SC_HSCROLL = 0xF080, - SC_MOUSEMENU = 0xF090, - SC_KEYMENU = 0xF100, - SC_ARRANGE = 0xF110, - SC_RESTORE = 0xF120, - SC_TASKLIST = 0xF130, - SC_SCREENSAVE = 0xF140, - SC_HOTKEY = 0xF150, - SC_DEFAULT = 0xF160, - SC_MONITORPOWER = 0xF170, - SC_CONTEXTHELP = 0xF180, - SC_SEPARATOR = 0xF00F, - } - public enum SystemMetric { SM_CXSCREEN = 0, // 0x00 diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 36e9cbb515..7b9f8ee066 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -650,25 +650,6 @@ namespace Avalonia.Win32 return IntPtr.Zero; - case UnmanagedMethods.WindowsMessage.WM_SYSCOMMAND: - if (WindowStateChanged != null) - { - switch ((SysCommands)wParam) - { - case SysCommands.SC_MINIMIZE: - WindowStateChanged(WindowState.Minimized); - break; - case SysCommands.SC_MAXIMIZE: - WindowStateChanged(WindowState.Maximized); - break; - case SysCommands.SC_RESTORE: - WindowStateChanged(WindowState.Normal); - break; - } - } - - break; - case UnmanagedMethods.WindowsMessage.WM_MOVE: PositionChanged?.Invoke(new Point((short)(ToInt32(lParam) & 0xffff), (short)(ToInt32(lParam) >> 16))); return IntPtr.Zero;