diff --git a/src/Avalonia.X11/X11Window.cs b/src/Avalonia.X11/X11Window.cs index bf20600a18..9468ff0355 100644 --- a/src/Avalonia.X11/X11Window.cs +++ b/src/Avalonia.X11/X11Window.cs @@ -622,14 +622,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);