Introduced "forced" CSD mode without app opting in by kekekeks · Pull Request #20976 · AvaloniaUI/Avalonia (original) (raw)

tests/Avalonia.Controls.UnitTests/WindowTests.cs

Adds unit tests validating forced-decoration sizing behavior.

src/Windows/Avalonia.Win32/WindowImpl.cs

Ensures ExtendClientAreaToDecorationsChanged is raised even before the window is shown.

src/Avalonia.X11/X11Window.cs

Switches to a “managed decorations” concept that can be forced via platform options.

src/Avalonia.X11/X11Platform.cs

Adds experimental ForceDrawnDecorations option and docs.

src/Avalonia.Controls/WindowBase.cs

Fixes Bounds to preserve arranged position (needed when the window is inset by a host).

src/Avalonia.Controls/Window.cs

Implements forced-decoration sizing: adjusts ClientSize, platform resize calls, and decoration margin/inset handling.

src/Avalonia.Controls/TopLevelHost.cs

Adds DecorationInset and applies it to measure/arrange the TopLevel child.

src/Avalonia.Controls/TopLevel.cs

Updates PresentationSource construction following signature changes.

src/Avalonia.Controls/PresentationSource/PresentationSource.cs

Removes the client-size provider parameter from the constructor.

src/Avalonia.Controls/PresentationSource/PresentationSource.RenderRoot.cs

Changes PresentationSource.ClientSize to read from PlatformImpl.ClientSize.

api/Avalonia.nupkg.xml

Suppresses API compatibility warnings related to Window.ExtendClientAreaToDecorationsChanged visibility change.