Browse Source

[X11] Fixed window size hints handling

new-weak-events
Nikita Tsukanov 8 years ago
parent
commit
64a0ae0921
  1. 16
      src/Avalonia.X11/X11Window.cs

16
src/Avalonia.X11/X11Window.cs

@ -557,8 +557,14 @@ namespace Avalonia.X11
private bool _systemDecorations = true;
private bool _canResize = true;
private (Size minSize, Size maxSize) _scaledMinMaxSize;
private (PixelSize minSize, PixelSize maxSize) _minMaxSize;
private const int MaxWindowDimension = 100000;
private (Size minSize, Size maxSize) _scaledMinMaxSize =
(new Size(1, 1), new Size(double.PositiveInfinity, double.PositiveInfinity));
private (PixelSize minSize, PixelSize maxSize) _minMaxSize = (new PixelSize(1, 1),
new PixelSize(MaxWindowDimension, MaxWindowDimension));
private double _scaling = 1;
void ScheduleInput(RawInputEventArgs args, ref XEvent xev)
@ -874,10 +880,10 @@ namespace Avalonia.X11
(int)(minSize.Width < 1 ? 1 : minSize.Width * Scaling),
(int)(minSize.Height < 1 ? 1 : minSize.Height * Scaling));
const int maxDim = 100000;
const int maxDim = MaxWindowDimension;
var max = new PixelSize(
(int)(maxSize.Width > maxDim ? maxDim : Math.Max(min.Width, minSize.Width * Scaling)),
(int)(maxSize.Height > maxDim ? maxDim : Math.Max(min.Height, minSize.Height * Scaling)));
(int)(maxSize.Width > maxDim ? maxDim : Math.Max(min.Width, maxSize.Width * Scaling)),
(int)(maxSize.Height > maxDim ? maxDim : Math.Max(min.Height, maxSize.Height * Scaling)));
_minMaxSize = (min, max);
UpdateSizeHints(null);

Loading…
Cancel
Save