From ba43523daf221599441c27696b03d105330a7aa7 Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Tue, 3 Mar 2026 22:16:17 +0500 Subject: [PATCH] Rename SystemDecorations to WindowDecorations since they aren't necessary "system". (#20796) * Rename SystemDecorations to WindowDecorations since they aren't necessary system. * Apply suggestions from code review Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot <175728472+Copilot@users.noreply.github.com> --- api/Avalonia.nupkg.xml | 60 +++++++++++++++++++ samples/ControlCatalog/DecoratedWindow.xaml | 10 ++-- samples/ControlCatalog/MainView.xaml | 6 +- samples/ControlCatalog/MainView.xaml.cs | 6 +- .../Pages/WindowPage.axaml.cs | 6 +- .../IntegrationTestApp/ShowWindowTest.axaml | 2 +- src/Avalonia.Controls/Platform/IWindowImpl.cs | 4 +- src/Avalonia.Controls/Window.cs | 35 ++++++----- .../Remote/PreviewerWindowImpl.cs | 2 +- src/Avalonia.DesignerSupport/Remote/Stubs.cs | 2 +- src/Avalonia.Native/WindowImpl.cs | 6 +- src/Avalonia.X11/X11Window.cs | 24 ++++---- .../Avalonia.Headless/HeadlessWindowImpl.cs | 2 +- .../Avalonia.Win32/EmbeddedWindowImpl.cs | 2 +- src/Windows/Avalonia.Win32/PopupImpl.cs | 2 +- src/Windows/Avalonia.Win32/TrayIconImpl.cs | 2 +- .../Avalonia.Win32/WindowImpl.AppWndProc.cs | 2 +- src/Windows/Avalonia.Win32/WindowImpl.cs | 22 +++---- .../WindowTests_MacOS.cs | 20 +++---- .../ExtendClientAreaWindowTests.cs | 16 ++--- .../StandardWindowTests.cs | 16 ++--- 21 files changed, 157 insertions(+), 90 deletions(-) diff --git a/api/Avalonia.nupkg.xml b/api/Avalonia.nupkg.xml index a495938edc..6add9ec307 100644 --- a/api/Avalonia.nupkg.xml +++ b/api/Avalonia.nupkg.xml @@ -385,6 +385,12 @@ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + CP0001 + T:Avalonia.Controls.SystemDecorations + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + CP0001 T:Avalonia.Controls.SystemDialog @@ -811,6 +817,12 @@ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + CP0001 + T:Avalonia.Controls.SystemDecorations + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + CP0001 T:Avalonia.Controls.SystemDialog @@ -1489,6 +1501,12 @@ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + CP0002 + F:Avalonia.Controls.Window.SystemDecorationsProperty + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + CP0002 M:Avalonia.AppBuilder.get_LifetimeOverride @@ -1867,6 +1885,12 @@ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + CP0002 + M:Avalonia.Controls.Window.get_SystemDecorations + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + CP0002 M:Avalonia.Controls.Window.set_ExtendClientAreaChromeHints(Avalonia.Platform.ExtendClientAreaChromeHints) @@ -1897,6 +1921,12 @@ baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll current/Avalonia/lib/net10.0/Avalonia.Controls.dll + + CP0002 + M:Avalonia.Platform.IWindowImpl.SetSystemDecorations(Avalonia.Controls.SystemDecorations) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + CP0002 M:Avalonia.Platform.Screen.#ctor(System.Double,Avalonia.PixelRect,Avalonia.PixelRect,System.Boolean) @@ -2665,6 +2695,12 @@ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + CP0002 + F:Avalonia.Controls.Window.SystemDecorationsProperty + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + CP0002 M:Avalonia.AppBuilder.get_LifetimeOverride @@ -3043,6 +3079,12 @@ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + CP0002 + M:Avalonia.Controls.Window.get_SystemDecorations + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + CP0002 M:Avalonia.Controls.Window.set_ExtendClientAreaChromeHints(Avalonia.Platform.ExtendClientAreaChromeHints) @@ -3073,6 +3115,12 @@ baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll current/Avalonia/lib/net8.0/Avalonia.Controls.dll + + CP0002 + M:Avalonia.Platform.IWindowImpl.SetSystemDecorations(Avalonia.Controls.SystemDecorations) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + CP0002 M:Avalonia.Platform.Screen.#ctor(System.Double,Avalonia.PixelRect,Avalonia.PixelRect,System.Boolean) @@ -3331,6 +3379,12 @@ baseline/Avalonia/lib/net10.0/Avalonia.Base.dll current/Avalonia/lib/net10.0/Avalonia.Base.dll + + CP0006 + M:Avalonia.Platform.IWindowImpl.SetWindowDecorations(Avalonia.Controls.WindowDecorations) + baseline/Avalonia/lib/net10.0/Avalonia.Controls.dll + current/Avalonia/lib/net10.0/Avalonia.Controls.dll + CP0006 M:Avalonia.Platform.IWindowingPlatform.GetWindowsZOrder(System.ReadOnlySpan{Avalonia.Platform.IWindowImpl},System.Span{System.Int64}) @@ -3547,6 +3601,12 @@ baseline/Avalonia/lib/net8.0/Avalonia.Base.dll current/Avalonia/lib/net8.0/Avalonia.Base.dll + + CP0006 + M:Avalonia.Platform.IWindowImpl.SetWindowDecorations(Avalonia.Controls.WindowDecorations) + baseline/Avalonia/lib/net8.0/Avalonia.Controls.dll + current/Avalonia/lib/net8.0/Avalonia.Controls.dll + CP0006 M:Avalonia.Platform.IWindowingPlatform.GetWindowsZOrder(System.ReadOnlySpan{Avalonia.Platform.IWindowImpl},System.Span{System.Int64}) diff --git a/samples/ControlCatalog/DecoratedWindow.xaml b/samples/ControlCatalog/DecoratedWindow.xaml index 997ae54f41..804eebfb40 100644 --- a/samples/ControlCatalog/DecoratedWindow.xaml +++ b/samples/ControlCatalog/DecoratedWindow.xaml @@ -2,7 +2,7 @@ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" x:Class="ControlCatalog.DecoratedWindow" Title="Avalonia Control Gallery" - SystemDecorations="None" Name="Window"> + WindowDecorations="None" Name="Window"> @@ -43,11 +43,11 @@ Hello world! - + - None - BorderOnly - Full + None + BorderOnly + Full CanResize diff --git a/samples/ControlCatalog/MainView.xaml b/samples/ControlCatalog/MainView.xaml index 20b7d33c60..cce09c03f7 100644 --- a/samples/ControlCatalog/MainView.xaml +++ b/samples/ControlCatalog/MainView.xaml @@ -218,9 +218,9 @@ SelectionChanged="Decorations_SelectionChanged" ToolTip.Tip="System Decorations"> - None - BorderOnly - Full + None + BorderOnly + Full 0 && e.AddedItems[0] is SystemDecorations systemDecorations) + if (TopLevel.GetTopLevel(this) is Window window && e.AddedItems.Count > 0 && e.AddedItems[0] is WindowDecorations systemDecorations) { - window.SystemDecorations = systemDecorations; + window.WindowDecorations = systemDecorations; } } @@ -79,7 +79,7 @@ namespace ControlCatalog base.OnAttachedToVisualTree(e); if (TopLevel.GetTopLevel(this) is Window window) - Decorations.SelectedIndex = (int)window.SystemDecorations; + Decorations.SelectedIndex = (int)window.WindowDecorations; var insets = TopLevel.GetTopLevel(this)!.InsetsManager; if (insets != null) diff --git a/samples/IntegrationTestApp/Pages/WindowPage.axaml.cs b/samples/IntegrationTestApp/Pages/WindowPage.axaml.cs index baae2b8766..cc94c4c250 100644 --- a/samples/IntegrationTestApp/Pages/WindowPage.axaml.cs +++ b/samples/IntegrationTestApp/Pages/WindowPage.axaml.cs @@ -51,7 +51,7 @@ public partial class WindowPage : UserControl ShowWindowSize.Text = string.Empty; window.ExtendClientAreaToDecorationsHint = ShowWindowExtendClientAreaToDecorationsHint.IsChecked ?? false; - window.SystemDecorations = (SystemDecorations)ShowWindowSystemDecorations.SelectedIndex; + window.WindowDecorations = (WindowDecorations)ShowWindowSystemDecorations.SelectedIndex; window.WindowState = (WindowState)ShowWindowState.SelectedIndex; switch (ShowWindowMode.SelectedIndex) @@ -87,7 +87,7 @@ public partial class WindowPage : UserControl { Title = "Transparent Window", Name = "TransparentWindow", - SystemDecorations = SystemDecorations.None, + WindowDecorations = WindowDecorations.None, Background = Brushes.Transparent, TransparencyLevelHint = new[] { WindowTransparencyLevel.Transparent }, WindowStartupLocation = WindowStartupLocation.CenterOwner, @@ -136,7 +136,7 @@ public partial class WindowPage : UserControl Width = 200, Height = 200, Background = Brushes.Green, - SystemDecorations = SystemDecorations.None, + WindowDecorations = WindowDecorations.None, WindowStartupLocation = WindowStartupLocation.CenterOwner, Content = new Border { diff --git a/samples/IntegrationTestApp/ShowWindowTest.axaml b/samples/IntegrationTestApp/ShowWindowTest.axaml index 272c61ed0c..38f096e478 100644 --- a/samples/IntegrationTestApp/ShowWindowTest.axaml +++ b/samples/IntegrationTestApp/ShowWindowTest.axaml @@ -45,7 +45,7 @@ - + None BorderOnly Full diff --git a/src/Avalonia.Controls/Platform/IWindowImpl.cs b/src/Avalonia.Controls/Platform/IWindowImpl.cs index 1c55274bfd..7a55a0386b 100644 --- a/src/Avalonia.Controls/Platform/IWindowImpl.cs +++ b/src/Avalonia.Controls/Platform/IWindowImpl.cs @@ -46,9 +46,9 @@ namespace Avalonia.Platform Action? GotInputWhenDisabled { get; set; } /// - /// Enables or disables system window decorations (title bar, buttons, etc) + /// Enables or disables window decorations (title bar, buttons, etc) /// - void SetSystemDecorations(SystemDecorations enabled); + void SetWindowDecorations(WindowDecorations enabled); /// /// Sets the icon of this window. diff --git a/src/Avalonia.Controls/Window.cs b/src/Avalonia.Controls/Window.cs index 16bd8c5f2a..043abb0e1b 100644 --- a/src/Avalonia.Controls/Window.cs +++ b/src/Avalonia.Controls/Window.cs @@ -45,9 +45,9 @@ namespace Avalonia.Controls } /// - /// Determines system decorations (title bar, border, etc) for a + /// Determines window decorations (title bar, border, etc) for a /// - public enum SystemDecorations + public enum WindowDecorations { /// /// No decorations @@ -132,10 +132,10 @@ namespace Avalonia.Controls o => o.OffScreenMargin); /// - /// Defines the property. + /// Defines the property. /// - public static readonly StyledProperty SystemDecorationsProperty = - AvaloniaProperty.Register(nameof(SystemDecorations), SystemDecorations.Full); + public static readonly StyledProperty WindowDecorationsProperty = + AvaloniaProperty.Register(nameof(WindowDecorations), WindowDecorations.Full); /// /// Defines the property. @@ -357,12 +357,19 @@ namespace Avalonia.Controls } /// - /// Sets the system decorations (title bar, border, etc) + /// Gets or sets the window decorations (title bar, border, etc). /// - public SystemDecorations SystemDecorations + public WindowDecorations WindowDecorations { - get => GetValue(SystemDecorationsProperty); - set => SetValue(SystemDecorationsProperty, value); + get => GetValue(WindowDecorationsProperty); + set => SetValue(WindowDecorationsProperty, value); + } + + [Obsolete("Use WindowDecorations instead.")] + public WindowDecorations SystemDecorations + { + get => WindowDecorations; + set => WindowDecorations = value; } /// @@ -676,10 +683,10 @@ namespace Avalonia.Controls { var platformNeeds = PlatformImpl?.RequestedDrawnDecorations ?? PlatformRequestedDrawnDecoration.None; var parts = Chrome.DrawnWindowDecorationParts.None; - if (SystemDecorations != SystemDecorations.None) + if (WindowDecorations != WindowDecorations.None) { if (platformNeeds.HasFlag(PlatformRequestedDrawnDecoration.TitleBar) && - SystemDecorations == SystemDecorations.Full) + WindowDecorations == WindowDecorations.Full) parts |= Chrome.DrawnWindowDecorationParts.TitleBar; if (platformNeeds.HasFlag(PlatformRequestedDrawnDecoration.Shadow)) parts |= Chrome.DrawnWindowDecorationParts.Shadow; @@ -1343,11 +1350,11 @@ namespace Avalonia.Controls protected override void OnPropertyChanged(AvaloniaPropertyChangedEventArgs change) { base.OnPropertyChanged(change); - if (change.Property == SystemDecorationsProperty) + if (change.Property == WindowDecorationsProperty) { - var (_, typedNewValue) = change.GetOldAndNewValue(); + var (_, typedNewValue) = change.GetOldAndNewValue(); - PlatformImpl?.SetSystemDecorations(typedNewValue); + PlatformImpl?.SetWindowDecorations(typedNewValue); } else if (change.Property == OwnerProperty) diff --git a/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs b/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs index 4fbe77d485..e714b62511 100644 --- a/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs +++ b/src/Avalonia.DesignerSupport/Remote/PreviewerWindowImpl.cs @@ -124,7 +124,7 @@ namespace Avalonia.DesignerSupport.Remote { } - public void SetSystemDecorations(SystemDecorations enabled) + public void SetWindowDecorations(WindowDecorations enabled) { } diff --git a/src/Avalonia.DesignerSupport/Remote/Stubs.cs b/src/Avalonia.DesignerSupport/Remote/Stubs.cs index c9b6515ff6..706cd7de75 100644 --- a/src/Avalonia.DesignerSupport/Remote/Stubs.cs +++ b/src/Avalonia.DesignerSupport/Remote/Stubs.cs @@ -138,7 +138,7 @@ namespace Avalonia.DesignerSupport.Remote { } - public void SetSystemDecorations(SystemDecorations enabled) + public void SetWindowDecorations(WindowDecorations enabled) { } diff --git a/src/Avalonia.Native/WindowImpl.cs b/src/Avalonia.Native/WindowImpl.cs index 7adbfca6af..f23b6cbc62 100644 --- a/src/Avalonia.Native/WindowImpl.cs +++ b/src/Avalonia.Native/WindowImpl.cs @@ -20,7 +20,7 @@ namespace Avalonia.Native private readonly ITopLevelNativeMenuExporter _nativeMenuExporter; private bool _canResize = true; private bool _canMaximize = true; - private Controls.SystemDecorations _decorations = Controls.SystemDecorations.Full; + private Controls.WindowDecorations _decorations = Controls.WindowDecorations.Full; internal WindowImpl(IAvaloniaNativeFactory factory, AvaloniaNativePlatformOptions opts) : base(factory) { @@ -91,7 +91,7 @@ namespace Avalonia.Native _native.SetCanMaximize(value.AsComBool()); } - public void SetSystemDecorations(Controls.SystemDecorations enabled) + public void SetWindowDecorations(Controls.WindowDecorations enabled) { _decorations = enabled; _native.SetDecorations((Interop.SystemDecorations)enabled); @@ -186,7 +186,7 @@ namespace Avalonia.Native if(_native is MicroComProxyBase pb && pb.IsDisposed) return; - if (WindowState == WindowState.FullScreen || !_isExtended || _decorations != Controls.SystemDecorations.Full) + if (WindowState == WindowState.FullScreen || !_isExtended || _decorations != Controls.WindowDecorations.Full) { ExtendedMargins = new Thickness(); } diff --git a/src/Avalonia.X11/X11Window.cs b/src/Avalonia.X11/X11Window.cs index 01190709b6..014dd014a5 100644 --- a/src/Avalonia.X11/X11Window.cs +++ b/src/Avalonia.X11/X11Window.cs @@ -317,7 +317,7 @@ namespace Avalonia.X11 MotifDecorations.Maximize | MotifDecorations.Minimize | MotifDecorations.ResizeH; if (_popup - || _systemDecorations == SystemDecorations.None) + || _windowDecorations == WindowDecorations.None) decorations = 0; var isDisabled = !IsEnabled; @@ -695,7 +695,7 @@ namespace Avalonia.X11 private Thickness? GetFrameExtents() { - if (_systemDecorations != SystemDecorations.Full) + if (_windowDecorations != WindowDecorations.Full) return new Thickness(0); XGetWindowProperty(_x11.Display, _handle, _x11.Atoms._NET_FRAME_EXTENTS, IntPtr.Zero, @@ -865,8 +865,8 @@ namespace Avalonia.X11 return rv; } - private SystemDecorations _requestedSystemDecorations = SystemDecorations.Full; - private SystemDecorations _systemDecorations = SystemDecorations.Full; + private WindowDecorations _requestedWindowDecorations = WindowDecorations.Full; + private WindowDecorations _windowDecorations = WindowDecorations.Full; private bool _canResize = true; private bool _canMinimize = true; private bool _canMaximize = true; @@ -1179,9 +1179,9 @@ namespace Avalonia.X11 public PixelPoint PointToScreen(Point point) => _mode.PointToScreen(point); - public void SetSystemDecorations(SystemDecorations enabled) + public void SetWindowDecorations(WindowDecorations enabled) { - _requestedSystemDecorations = enabled; + _requestedWindowDecorations = enabled; UpdateEffectiveSystemDecorations(); } @@ -1189,15 +1189,15 @@ namespace Avalonia.X11 { // When extending client area, always hide WM decorations (we draw our own) var effective = _extendClientAreaToDecorations - ? SystemDecorations.None - : (_requestedSystemDecorations == SystemDecorations.Full - ? SystemDecorations.Full - : SystemDecorations.None); + ? WindowDecorations.None + : (_requestedWindowDecorations == WindowDecorations.Full + ? WindowDecorations.Full + : WindowDecorations.None); - if (_systemDecorations == effective) + if (_windowDecorations == effective) return; - _systemDecorations = effective; + _windowDecorations = effective; UpdateMotifHints(); UpdateSizeHints(null); } diff --git a/src/Headless/Avalonia.Headless/HeadlessWindowImpl.cs b/src/Headless/Avalonia.Headless/HeadlessWindowImpl.cs index 6ed907aa77..c755caf4eb 100644 --- a/src/Headless/Avalonia.Headless/HeadlessWindowImpl.cs +++ b/src/Headless/Avalonia.Headless/HeadlessWindowImpl.cs @@ -398,7 +398,7 @@ namespace Avalonia.Headless } - public void SetSystemDecorations(SystemDecorations enabled) + public void SetWindowDecorations(WindowDecorations enabled) { } diff --git a/src/Windows/Avalonia.Win32/EmbeddedWindowImpl.cs b/src/Windows/Avalonia.Win32/EmbeddedWindowImpl.cs index a039d568c6..0aeebc3206 100644 --- a/src/Windows/Avalonia.Win32/EmbeddedWindowImpl.cs +++ b/src/Windows/Avalonia.Win32/EmbeddedWindowImpl.cs @@ -14,7 +14,7 @@ namespace Avalonia.Win32 IsResizable = false, IsMinimizable = false, IsMaximizable = false, - Decorations = SystemDecorations.None + Decorations = WindowDecorations.None }; } diff --git a/src/Windows/Avalonia.Win32/PopupImpl.cs b/src/Windows/Avalonia.Win32/PopupImpl.cs index 8a8450443f..fd7b0982c4 100644 --- a/src/Windows/Avalonia.Win32/PopupImpl.cs +++ b/src/Windows/Avalonia.Win32/PopupImpl.cs @@ -113,7 +113,7 @@ namespace Avalonia.Win32 IsResizable = false, IsMinimizable = false, IsMaximizable = false, - Decorations = SystemDecorations.None, + Decorations = WindowDecorations.None, }; _parent = parent; diff --git a/src/Windows/Avalonia.Win32/TrayIconImpl.cs b/src/Windows/Avalonia.Win32/TrayIconImpl.cs index 917cc7ea3c..a53d461833 100644 --- a/src/Windows/Avalonia.Win32/TrayIconImpl.cs +++ b/src/Windows/Avalonia.Win32/TrayIconImpl.cs @@ -231,7 +231,7 @@ namespace Avalonia.Win32 var _trayMenu = new TrayPopupRoot { Name = "AvaloniaTrayPopupRoot_" + _tooltipText, - SystemDecorations = SystemDecorations.None, + WindowDecorations = WindowDecorations.None, SizeToContent = SizeToContent.WidthAndHeight, Background = null, TransparencyLevelHint = new[] { WindowTransparencyLevel.Transparent }, diff --git a/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs b/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs index b8d3515ce3..ab86830b73 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.AppWndProc.cs @@ -60,7 +60,7 @@ namespace Avalonia.Win32 case WindowsMessage.WM_NCCALCSIZE when ToInt32(wParam) == 1: { - if (_windowProperties.Decorations == SystemDecorations.None) + if (_windowProperties.Decorations == WindowDecorations.None) return IntPtr.Zero; // When the client area is extended into the frame, we are still requesting the standard styles matching diff --git a/src/Windows/Avalonia.Win32/WindowImpl.cs b/src/Windows/Avalonia.Win32/WindowImpl.cs index 57ba62307a..cda1d91194 100644 --- a/src/Windows/Avalonia.Win32/WindowImpl.cs +++ b/src/Windows/Avalonia.Win32/WindowImpl.cs @@ -139,7 +139,7 @@ namespace Avalonia.Win32 IsResizable = true, IsMinimizable = true, IsMaximizable = true, - Decorations = SystemDecorations.Full + Decorations = WindowDecorations.Full }; var surfaceFactory = AvaloniaLocator.Current.GetService(); @@ -544,7 +544,7 @@ namespace Avalonia.Win32 } } - private bool HasFullDecorations => _windowProperties.Decorations == SystemDecorations.Full; + private bool HasFullDecorations => _windowProperties.Decorations == WindowDecorations.Full; public void Move(PixelPoint point) => Position = point; @@ -596,7 +596,7 @@ namespace Avalonia.Win32 { // We told Windows we have a caption, but since we're actually extending into it, // it should be excluded from the final window bounds. - if (_windowProperties.Decorations != SystemDecorations.None) + if (_windowProperties.Decorations != WindowDecorations.None) { var borderOnlyRect = ClientRectToWindowRect(requestedClientRect, WindowStyles.WS_BORDER); requestedWindowRect.top = borderOnlyRect.top; @@ -893,7 +893,7 @@ namespace Avalonia.Win32 UpdateWindowProperties(newWindowProperties); } - public void SetSystemDecorations(SystemDecorations value) + public void SetWindowDecorations(WindowDecorations value) { var newWindowProperties = _windowProperties; @@ -1149,7 +1149,7 @@ namespace Avalonia.Win32 borderCaptionThickness.left *= -1; borderCaptionThickness.top *= -1; - if (_windowProperties.Decorations == SystemDecorations.Full) + if (_windowProperties.Decorations == WindowDecorations.Full) { if (_extendTitleBarHint != -1) borderCaptionThickness.top = (int)(_extendTitleBarHint * RenderScaling); @@ -1294,7 +1294,7 @@ namespace Avalonia.Win32 newWindowProperties.WindowState = state; - UpdateWindowProperties(newWindowProperties, newWindowProperties.Decorations != SystemDecorations.Full); + UpdateWindowProperties(newWindowProperties, newWindowProperties.Decorations != WindowDecorations.Full); if (command.HasValue) { @@ -1466,7 +1466,7 @@ namespace Avalonia.Win32 switch (newProperties.Decorations) { - case SystemDecorations.Full: + case WindowDecorations.Full: style |= WindowStyles.WS_BORDER | WindowStyles.WS_CAPTION | WindowStyles.WS_SYSMENU; if (newProperties.IsMinimizable) @@ -1477,12 +1477,12 @@ namespace Avalonia.Win32 break; - case SystemDecorations.BorderOnly: + case WindowDecorations.BorderOnly: style |= WindowStyles.WS_BORDER; break; } - if (newProperties.Decorations != SystemDecorations.None && newProperties.IsResizable) + if (newProperties.Decorations != WindowDecorations.None && newProperties.IsResizable) style |= WindowStyles.WS_THICKFRAME; var windowStates = GetWindowStateStyles(); @@ -1508,7 +1508,7 @@ namespace Avalonia.Win32 if (!_isFullScreenActive && ((oldProperties.Decorations != newProperties.Decorations) || forceChanges)) { - var margin = newProperties.Decorations == SystemDecorations.BorderOnly ? 1 : 0; + var margin = newProperties.Decorations == WindowDecorations.BorderOnly ? 1 : 0; var margins = new MARGINS { @@ -1655,7 +1655,7 @@ namespace Avalonia.Win32 public bool IsResizable; public bool IsMinimizable; public bool IsMaximizable; - public SystemDecorations Decorations; + public WindowDecorations Decorations; public bool IsFullScreen; public WindowState WindowState; } diff --git a/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs b/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs index e1d5075c7e..e2554a346b 100644 --- a/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs +++ b/tests/Avalonia.IntegrationTests.Appium/WindowTests_MacOS.cs @@ -345,13 +345,13 @@ namespace Avalonia.IntegrationTests.Appium } [PlatformTheory(TestPlatforms.MacOS)] - [InlineData(SystemDecorations.None)] - [InlineData(SystemDecorations.BorderOnly)] - [InlineData(SystemDecorations.Full)] - public void ExtendClientArea_SystemDecorations_Shows_Correct_Buttons(SystemDecorations decorations) + [InlineData(WindowDecorations.None)] + [InlineData(WindowDecorations.BorderOnly)] + [InlineData(WindowDecorations.Full)] + public void ExtendClientArea_SystemDecorations_Shows_Correct_Buttons(WindowDecorations decorations) { // #10650 - using (OpenWindow(extendClientArea: true, systemDecorations: decorations)) + using (OpenWindow(extendClientArea: true, windowDecorations: decorations)) { var secondaryWindow = GetWindow("SecondaryWindow"); @@ -359,7 +359,7 @@ namespace Avalonia.IntegrationTests.Appium { var chrome = secondaryWindow.GetSystemChromeButtons(); - if (decorations == SystemDecorations.Full) + if (decorations == WindowDecorations.Full) { Assert.NotNull(chrome.Close); Assert.NotNull(chrome.Minimize); @@ -374,7 +374,7 @@ namespace Avalonia.IntegrationTests.Appium } finally { - if (decorations != SystemDecorations.Full) + if (decorations != WindowDecorations.Full) { secondaryWindow.FindElementByAccessibilityId("CurrentSystemDecorations").Click(); Session.FindElementByAccessibilityId("SystemDecorationsFull").SendClick(); @@ -388,7 +388,7 @@ namespace Avalonia.IntegrationTests.Appium ShowWindowMode mode = ShowWindowMode.NonOwned, WindowStartupLocation location = WindowStartupLocation.Manual, bool canResize = true, - SystemDecorations systemDecorations = SystemDecorations.Full, + WindowDecorations windowDecorations = WindowDecorations.Full, bool extendClientArea = false) { var sizeTextBox = Session.FindElementByAccessibilityId("ShowWindowSize"); @@ -417,10 +417,10 @@ namespace Avalonia.IntegrationTests.Appium if (canResizeCheckBox.GetIsChecked() != canResize) canResizeCheckBox.Click(); - if (systemDecorationsComboBox.GetComboBoxValue() != systemDecorations.ToString()) + if (systemDecorationsComboBox.GetComboBoxValue() != windowDecorations.ToString()) { systemDecorationsComboBox.Click(); - Session.FindElementByName(systemDecorations.ToString()).SendClick(); + Session.FindElementByName(windowDecorations.ToString()).SendClick(); } if (extendClientAreaCheckBox.GetIsChecked() != extendClientArea) diff --git a/tests/Avalonia.IntegrationTests.Win32/ExtendClientAreaWindowTests.cs b/tests/Avalonia.IntegrationTests.Win32/ExtendClientAreaWindowTests.cs index cae559e605..7c7d34ac14 100644 --- a/tests/Avalonia.IntegrationTests.Win32/ExtendClientAreaWindowTests.cs +++ b/tests/Avalonia.IntegrationTests.Win32/ExtendClientAreaWindowTests.cs @@ -26,7 +26,7 @@ public abstract class ExtendClientAreaWindowTests : IDisposable } } - protected abstract SystemDecorations Decorations { get; } + protected abstract WindowDecorations Decorations { get; } public static MatrixTheoryData States => new([true, false], Enum.GetValues()); @@ -39,7 +39,7 @@ public abstract class ExtendClientAreaWindowTests : IDisposable { CanResize = canResize, WindowState = state, - SystemDecorations = Decorations, + WindowDecorations = Decorations, ExtendClientAreaToDecorationsHint = true, Width = ClientWidth, Height = ClientHeight, @@ -160,8 +160,8 @@ public abstract class ExtendClientAreaWindowTests : IDisposable public sealed class DecorationsFull : ExtendClientAreaWindowTests { - protected override SystemDecorations Decorations - => SystemDecorations.Full; + protected override WindowDecorations Decorations + => WindowDecorations.Full; protected override void VerifyNormalState(bool canResize) { @@ -182,8 +182,8 @@ public abstract class ExtendClientAreaWindowTests : IDisposable public sealed class DecorationsBorderOnly : ExtendClientAreaWindowTests { - protected override SystemDecorations Decorations - => SystemDecorations.BorderOnly; + protected override WindowDecorations Decorations + => WindowDecorations.BorderOnly; protected override void VerifyNormalState(bool canResize) { @@ -197,8 +197,8 @@ public abstract class ExtendClientAreaWindowTests : IDisposable public sealed class DecorationsNone : ExtendClientAreaWindowTests { - protected override SystemDecorations Decorations - => SystemDecorations.None; + protected override WindowDecorations Decorations + => WindowDecorations.None; protected override void VerifyNormalState(bool canResize) { diff --git a/tests/Avalonia.IntegrationTests.Win32/StandardWindowTests.cs b/tests/Avalonia.IntegrationTests.Win32/StandardWindowTests.cs index c58bd0012a..5971c4dc6c 100644 --- a/tests/Avalonia.IntegrationTests.Win32/StandardWindowTests.cs +++ b/tests/Avalonia.IntegrationTests.Win32/StandardWindowTests.cs @@ -27,7 +27,7 @@ public abstract class StandardWindowTests : IDisposable } } - protected abstract SystemDecorations Decorations { get; } + protected abstract WindowDecorations Decorations { get; } protected abstract bool HasCaption { get; } @@ -42,7 +42,7 @@ public abstract class StandardWindowTests : IDisposable { CanResize = canResize, WindowState = state, - SystemDecorations = Decorations, + WindowDecorations = Decorations, ExtendClientAreaToDecorationsHint = false, Width = ClientWidth, Height = ClientHeight, @@ -108,8 +108,8 @@ public abstract class StandardWindowTests : IDisposable public sealed class DecorationsFull : StandardWindowTests { - protected override SystemDecorations Decorations - => SystemDecorations.Full; + protected override WindowDecorations Decorations + => WindowDecorations.Full; protected override bool HasCaption => true; @@ -117,8 +117,8 @@ public abstract class StandardWindowTests : IDisposable public sealed class DecorationsBorderOnly : StandardWindowTests { - protected override SystemDecorations Decorations - => SystemDecorations.BorderOnly; + protected override WindowDecorations Decorations + => WindowDecorations.BorderOnly; protected override bool HasCaption => false; @@ -126,8 +126,8 @@ public abstract class StandardWindowTests : IDisposable public sealed class DecorationsNone : StandardWindowTests { - protected override SystemDecorations Decorations - => SystemDecorations.None; + protected override WindowDecorations Decorations + => WindowDecorations.None; protected override bool HasCaption => false;