From 3ede24cf74bb565f8a899af84113b9ad8f6eb450 Mon Sep 17 00:00:00 2001 From: Jumar Macato Date: Wed, 18 Sep 2019 21:40:22 +0800 Subject: [PATCH] Set a ratio of client size as default window size on xorg. --- src/Avalonia.X11/X11Window.cs | 13 +++++++++++-- 1 file changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.X11/X11Window.cs b/src/Avalonia.X11/X11Window.cs index 975b3d11d7..9c9e421a6c 100644 --- a/src/Avalonia.X11/X11Window.cs +++ b/src/Avalonia.X11/X11Window.cs @@ -98,14 +98,23 @@ namespace Avalonia.X11 valueMask |= SetWindowValuemask.ColorMap; } - _handle = XCreateWindow(_x11.Display, _x11.RootWindow, 10, 10, 300, 200, 0, + int defaultWidth = 300, defaultHeight = 200; + + if (!_popup) + { + // Emulate Window 7+'s default window size behavior. + defaultWidth = (int)(MaxClientSize.Width * 0.75d); + defaultHeight = (int)(MaxClientSize.Height * 0.7d); + } + + _handle = XCreateWindow(_x11.Display, _x11.RootWindow, 10, 10, defaultWidth, defaultHeight, 0, depth, (int)CreateWindowArgs.InputOutput, visual, new UIntPtr((uint)valueMask), ref attr); if (_useRenderWindow) - _renderHandle = XCreateWindow(_x11.Display, _handle, 0, 0, 300, 200, 0, depth, + _renderHandle = XCreateWindow(_x11.Display, _handle, 0, 0, defaultWidth, defaultHeight, 0, depth, (int)CreateWindowArgs.InputOutput, visual, new UIntPtr((uint)(SetWindowValuemask.BorderPixel | SetWindowValuemask.BitGravity |