From a85e70a124d15c567bd0ebe1e2c2a95e063f16a1 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 25 Jan 2017 22:57:33 +0000 Subject: [PATCH 1/5] Remove CoverTaskbarWhenMaximized property from Window. --- src/Avalonia.Controls/Window.cs | 20 -------------------- 1 file changed, 20 deletions(-) diff --git a/src/Avalonia.Controls/Window.cs b/src/Avalonia.Controls/Window.cs index 6755dee073..40c52a748d 100644 --- a/src/Avalonia.Controls/Window.cs +++ b/src/Avalonia.Controls/Window.cs @@ -64,13 +64,6 @@ namespace Avalonia.Controls public static readonly StyledProperty HasSystemDecorationsProperty = AvaloniaProperty.Register(nameof(HasSystemDecorations), true); - /// - /// Sets if the window should cover the taskbar when maximized. Only applies to Windows - /// with HasSystemDecorations = false. - /// - public static readonly StyledProperty CoverTaskbarOnMaximizeProperty = - AvaloniaProperty.Register(nameof(CoverTaskbarOnMaximize), true); - /// /// Defines the property. /// @@ -97,9 +90,6 @@ namespace Avalonia.Controls HasSystemDecorationsProperty.Changed.AddClassHandler( (s, e) => s.PlatformImpl.SetSystemDecorations((bool) e.NewValue)); - CoverTaskbarOnMaximizeProperty.Changed.AddClassHandler( - (s, e) => s.PlatformImpl.SetCoverTaskbarWhenMaximized((bool)e.NewValue)); - IconProperty.Changed.AddClassHandler((s, e) => s.PlatformImpl.SetIcon(((WindowIcon)e.NewValue).PlatformImpl)); } @@ -168,16 +158,6 @@ namespace Avalonia.Controls set { SetValue(HasSystemDecorationsProperty, value); } } - /// - /// Sets if the window should cover the taskbar when maximized. Only applies to Windows - /// with HasSystemDecorations = false. - /// - public bool CoverTaskbarOnMaximize - { - get { return GetValue(CoverTaskbarOnMaximizeProperty); } - set { SetValue(CoverTaskbarOnMaximizeProperty, value); } - } - /// /// Gets or sets the minimized/maximized state of the window. /// From c09755cfbff589dfbf74ee47bf2501988a24bf9f Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 25 Jan 2017 22:57:56 +0000 Subject: [PATCH 2/5] Remove SetCoverTaskbarWhenMaximized method from IWindowImpl --- src/Avalonia.Controls/Platform/IWindowImpl.cs | 5 ----- 1 file changed, 5 deletions(-) diff --git a/src/Avalonia.Controls/Platform/IWindowImpl.cs b/src/Avalonia.Controls/Platform/IWindowImpl.cs index fd2feb539f..609e9834cb 100644 --- a/src/Avalonia.Controls/Platform/IWindowImpl.cs +++ b/src/Avalonia.Controls/Platform/IWindowImpl.cs @@ -35,11 +35,6 @@ namespace Avalonia.Platform /// void SetSystemDecorations(bool enabled); - /// - /// When system decorations are disabled sets if the maximized state covers the entire screen or just the working area. - /// - void SetCoverTaskbarWhenMaximized(bool enable); - /// /// Sets the icon of this window. /// From 1394995927dc87c017dc3160e5c586e26f10da12 Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 25 Jan 2017 23:02:01 +0000 Subject: [PATCH 3/5] Win32 WindowImpl now obeys taskbar when maximizing by default. --- src/Windows/Avalonia.Win32/WindowImpl.cs | 23 +---------------------- 1 file changed, 1 insertion(+), 22 deletions(-) diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index db46538796..ed6d9c32d3 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -33,7 +33,6 @@ namespace Avalonia.Win32 private bool _trackingMouse; private bool _isActive; private bool _decorated = true; - private bool _coverTaskBarWhenMaximized = true; private double _scaling = 1; private WindowState _showWindowState; @@ -678,8 +677,6 @@ namespace Avalonia.Win32 { UnmanagedMethods.ShowWindowCommand command; - bool maximizeFillsDesktop = false; // otherwise we cover entire screen. - switch (state) { case WindowState.Minimized: @@ -687,11 +684,6 @@ namespace Avalonia.Win32 break; case WindowState.Maximized: command = ShowWindowCommand.Maximize; - - if (!_decorated && !_coverTaskBarWhenMaximized) - { - maximizeFillsDesktop = true; - } break; case WindowState.Normal: @@ -704,10 +696,7 @@ namespace Avalonia.Win32 UnmanagedMethods.ShowWindow(_hwnd, command); - if (maximizeFillsDesktop) - { - MaximizeWithoutCoveringTaskbar(); - } + MaximizeWithoutCoveringTaskbar(); if (!Design.IsDesignMode) { @@ -751,15 +740,5 @@ namespace Avalonia.Win32 return (int)(ptr.ToInt64() & 0xffffffff); } - - public void SetCoverTaskbarWhenMaximized(bool enable) - { - _coverTaskBarWhenMaximized = enable; - - if (_showWindowState == WindowState.Maximized) - { - ShowWindow(WindowState.Maximized); - } - } } } From 80e42b5882ca5b7be9062b3a871c314a878c4e1e Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 25 Jan 2017 23:04:06 +0000 Subject: [PATCH 4/5] Remove SetCoverTaskbarWhenMaximized from other backends. --- .../Avalonia.Android/Platform/SkiaPlatform/WindowImpl.cs | 5 ----- src/Gtk/Avalonia.Gtk/WindowImplBase.cs | 5 ----- src/iOS/Avalonia.iOS/AvaloniaView.cs | 5 ----- 3 files changed, 15 deletions(-) diff --git a/src/Android/Avalonia.Android/Platform/SkiaPlatform/WindowImpl.cs b/src/Android/Avalonia.Android/Platform/SkiaPlatform/WindowImpl.cs index 0e1540b5fd..f1c5d248ac 100644 --- a/src/Android/Avalonia.Android/Platform/SkiaPlatform/WindowImpl.cs +++ b/src/Android/Avalonia.Android/Platform/SkiaPlatform/WindowImpl.cs @@ -108,11 +108,6 @@ namespace Avalonia.Android.Platform.SkiaPlatform { } - public void SetCoverTaskbarWhenMaximized(bool enable) - { - //Not supported - } - public void Invalidate(Rect rect) { if (Holder?.Surface?.IsValid == true) base.Invalidate(); diff --git a/src/Gtk/Avalonia.Gtk/WindowImplBase.cs b/src/Gtk/Avalonia.Gtk/WindowImplBase.cs index 8641f2f431..a9ecfa4058 100644 --- a/src/Gtk/Avalonia.Gtk/WindowImplBase.cs +++ b/src/Gtk/Avalonia.Gtk/WindowImplBase.cs @@ -304,11 +304,6 @@ namespace Avalonia.Gtk args.RetVal = true; } - public void SetCoverTaskbarWhenMaximized(bool enable) - { - // No action neccesary on Gtk. - } - public void Dispose() { _window.Hide(); diff --git a/src/iOS/Avalonia.iOS/AvaloniaView.cs b/src/iOS/Avalonia.iOS/AvaloniaView.cs index 67817ef62a..8b14d09573 100644 --- a/src/iOS/Avalonia.iOS/AvaloniaView.cs +++ b/src/iOS/Avalonia.iOS/AvaloniaView.cs @@ -170,11 +170,6 @@ namespace Avalonia.iOS //Not supported } - public void SetCoverTaskbarWhenMaximized(bool enable) - { - //Not supported - } - public override void TouchesEnded(NSSet touches, UIEvent evt) { var touch = touches.AnyObject as UITouch; From e486b27357e42b3a19954eee8c7d6c8e09866c9f Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Wed, 25 Jan 2017 23:16:59 +0000 Subject: [PATCH 5/5] Only call maximize without covering taskbar if we are in maximized state. --- src/Windows/Avalonia.Win32/WindowImpl.cs | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index ed6d9c32d3..1ddd1ed10f 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -696,7 +696,10 @@ namespace Avalonia.Win32 UnmanagedMethods.ShowWindow(_hwnd, command); - MaximizeWithoutCoveringTaskbar(); + if (state == WindowState.Maximized) + { + MaximizeWithoutCoveringTaskbar(); + } if (!Design.IsDesignMode) {