From 07e9bad0aed1b26f70dd952051261038f11f3a4c Mon Sep 17 00:00:00 2001 From: Michal Tomecki Date: Mon, 12 Dec 2022 12:11:35 +0100 Subject: [PATCH] Updated Window startup positioning behaviour on Linux to be more consistent with WPF behaviour --- src/Avalonia.X11/X11Window.cs | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/Avalonia.X11/X11Window.cs b/src/Avalonia.X11/X11Window.cs index 955096e18a..62e4441066 100644 --- a/src/Avalonia.X11/X11Window.cs +++ b/src/Avalonia.X11/X11Window.cs @@ -57,6 +57,7 @@ namespace Avalonia.X11 private TransparencyHelper _transparencyHelper; private RawEventGrouper _rawEventGrouper; private bool _useRenderWindow = false; + private bool _usePositioningFlags = false; enum XSyncState { @@ -299,6 +300,9 @@ namespace Avalonia.X11 }; hints.height_inc = hints.width_inc = 1; var flags = XSizeHintsFlags.PMinSize | XSizeHintsFlags.PResizeInc; + if (_usePositioningFlags) + flags |= XSizeHintsFlags.PPosition | XSizeHintsFlags.PSize; + // People might be passing double.MaxValue if (max.Width < 100000 && max.Height < 100000) { @@ -958,6 +962,9 @@ namespace Avalonia.X11 get => _position ?? default; set { + _usePositioningFlags = true; + UpdateSizeHints(null); + var changes = new XWindowChanges { x = (int)value.X,