From 290410b2962756f9fac6bc2695c9046c799e6fc8 Mon Sep 17 00:00:00 2001 From: Jumar Macato Date: Fri, 20 Sep 2019 23:18:22 +0800 Subject: [PATCH] Revert "Do it the hackey way" This reverts commit b7a42d96d2b6802ffbc6659884a99902b82b63bf. --- src/Avalonia.X11/X11Window.cs | 51 +++++++++-------------------------- 1 file changed, 12 insertions(+), 39 deletions(-) diff --git a/src/Avalonia.X11/X11Window.cs b/src/Avalonia.X11/X11Window.cs index 707910b9a5..00761dfce8 100644 --- a/src/Avalonia.X11/X11Window.cs +++ b/src/Avalonia.X11/X11Window.cs @@ -42,7 +42,6 @@ namespace Avalonia.X11 private X11Window _transientParent; private double? _scalingOverride; public object SyncRoot { get; } = new object(); - private int defaultWidth = 300, defaultHeight = 200; class InputEventContainer { @@ -99,6 +98,17 @@ namespace Avalonia.X11 valueMask |= SetWindowValuemask.ColorMap; } + int defaultWidth = 300, defaultHeight = 200; + + if (!_popup) + { + var monitor = Screen.AllScreens.OrderBy(x => x.PixelDensity) + .FirstOrDefault(m => m.Bounds.Contains(Position)); + + // Emulate Window 7+'s default window size behavior. + defaultWidth = (int)(monitor.WorkingArea.Width * 0.75d); + defaultHeight = (int)(monitor.WorkingArea.Height * 0.7d); + } _handle = XCreateWindow(_x11.Display, _x11.RootWindow, 10, 10, defaultWidth, defaultHeight, 0, depth, @@ -116,7 +126,7 @@ namespace Avalonia.X11 _renderHandle = _handle; Handle = new PlatformHandle(_handle, "XID"); - _realSize = new PixelSize(defaultWidth, defaultHeight); + _realSize = new PixelSize(300, 200); platform.Windows[_handle] = OnEvent; XEventMask ignoredMask = XEventMask.SubstructureRedirectMask | XEventMask.ResizeRedirectMask @@ -157,21 +167,8 @@ namespace Avalonia.X11 XFlush(_x11.Display); if(_popup) PopupPositioner = new ManagedPopupPositioner(new ManagedPopupPositionerPopupImplHelper(popupParent, MoveResize)); - else - sizingState = DefaultSizingState.Start; - - } - - DefaultSizingState sizingState; - - enum DefaultSizingState - { - None, - Start, - End } - class SurfaceInfo : EglGlPlatformSurface.IEglWindowGlPlatformSurfaceInfo { private readonly X11Window _window; @@ -384,23 +381,7 @@ namespace Avalonia.X11 XTranslateCoordinates(_x11.Display, _handle, _x11.RootWindow, 0, 0, out var tx, out var ty, out _); - _configurePoint = new PixelPoint(tx, ty); - - if (sizingState == DefaultSizingState.Start) - { - var monitor = Screen.AllScreens.OrderBy(x => x.PixelDensity) - .FirstOrDefault(m => m.Bounds.Contains(new PixelPoint(tx, ty))); - - // Emulate Window 7+'s default window size behavior. - var defW = (int)(monitor.WorkingArea.Width * 0.75d); - var defH = (int)(monitor.WorkingArea.Height * 0.7d); - - var defSize = new Size(defW, defH); - Resize(defSize); - - sizingState = DefaultSizingState.End; - } } if (needEnqueue) Dispatcher.UIThread.Post(() => @@ -784,12 +765,6 @@ namespace Avalonia.X11 void Resize(Size clientSize, bool force) { - // It's a hack but ohwell... - if(sizingState == DefaultSizingState.Start - & clientSize.Width != defaultWidth - & clientSize.Height != defaultHeight) - sizingState = DefaultSizingState.End; - if (!force && clientSize == ClientSize) return; @@ -807,8 +782,6 @@ namespace Avalonia.X11 _realSize = pixelSize; Resized?.Invoke(ClientSize); } - - } public void CanResize(bool value)