From df6dc0abb7e7f38561a27598a7393b7723ef3d3f Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 20 Apr 2020 16:18:58 +0200 Subject: [PATCH 1/2] Fix window sizing tests. We need to make sure the window is being measured the correct number of times to know that the measure pass is correct. --- tests/Avalonia.Controls.UnitTests/WindowTests.cs | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/tests/Avalonia.Controls.UnitTests/WindowTests.cs b/tests/Avalonia.Controls.UnitTests/WindowTests.cs index 1ac4d7a236..cf2920998a 100644 --- a/tests/Avalonia.Controls.UnitTests/WindowTests.cs +++ b/tests/Avalonia.Controls.UnitTests/WindowTests.cs @@ -352,7 +352,8 @@ namespace Avalonia.Controls.UnitTests target.Show(); - Assert.Equal(new Size(100, 50), child.MeasureSize); + Assert.Equal(1, child.MeasureSizes.Count); + Assert.Equal(new Size(100, 50), child.MeasureSizes[0]); } } @@ -373,7 +374,8 @@ namespace Avalonia.Controls.UnitTests target.Show(); - Assert.Equal(new Size(550, 450), child.MeasureSize); + Assert.Equal(1, child.MeasureSizes.Count); + Assert.Equal(new Size(550, 450), child.MeasureSizes[0]); } } @@ -393,7 +395,8 @@ namespace Avalonia.Controls.UnitTests target.Show(); - Assert.Equal(Size.Infinity, child.MeasureSize); + Assert.Equal(1, child.MeasureSizes.Count); + Assert.Equal(Size.Infinity, child.MeasureSizes[0]); } } @@ -549,11 +552,11 @@ namespace Avalonia.Controls.UnitTests private class ChildControl : Control { - public Size MeasureSize { get; private set; } + public List MeasureSizes { get; } = new List(); protected override Size MeasureOverride(Size availableSize) { - MeasureSize = availableSize; + MeasureSizes.Add(availableSize); return base.MeasureOverride(availableSize); } } From 5b5c2e44c7691c3408fb9b68ec59f9816c48c56a Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 20 Apr 2020 16:19:37 +0200 Subject: [PATCH 2/2] Fix window sizing again. We need to measure with the client size when `SizeToContent` is `Manual`. --- src/Avalonia.Controls/Window.cs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Avalonia.Controls/Window.cs b/src/Avalonia.Controls/Window.cs index b21f18a59d..ee596432f7 100644 --- a/src/Avalonia.Controls/Window.cs +++ b/src/Avalonia.Controls/Window.cs @@ -570,8 +570,8 @@ namespace Avalonia.Controls protected override Size MeasureOverride(Size availableSize) { var sizeToContent = SizeToContent; - var constraint = availableSize; var clientSize = ClientSize; + var constraint = clientSize; if (sizeToContent.HasFlagCustom(SizeToContent.Width)) {