From 87806ce787b92ee4e3da67d7989fc7d0a3ead8c1 Mon Sep 17 00:00:00 2001 From: Shaojun Li Date: Wed, 28 May 2025 10:25:09 +0800 Subject: [PATCH] Do not resize maximized or fullscreen window according to dpi, or window may be out of screen and resized by window manager again. --- src/Avalonia.X11/X11Window.cs | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.X11/X11Window.cs b/src/Avalonia.X11/X11Window.cs index 7cf4d3e2bb..f1f95ee3d5 100644 --- a/src/Avalonia.X11/X11Window.cs +++ b/src/Avalonia.X11/X11Window.cs @@ -615,14 +615,17 @@ namespace Avalonia.X11 _realSize = nsize; _position = npos; bool updatedSizeViaScaling = false; + // Maximized or fullscreen window shouldn't be resized by us. + // Window manager will do it. + bool skipResize = WindowState != WindowState.Normal; if (changedPos) { PositionChanged?.Invoke(npos); - updatedSizeViaScaling = UpdateScaling(); + updatedSizeViaScaling = UpdateScaling(skipResize); } UpdateImePosition(); - if (changedSize && !updatedSizeViaScaling && !_overrideRedirect) + if (changedSize && (skipResize || !updatedSizeViaScaling) && !_overrideRedirect) Resized?.Invoke(ClientSize, WindowResizeReason.Unspecified); }, DispatcherPriority.AsyncRenderTargetResize);