Browse Source

Added failing test for #7706.

pull/11233/head
Steven Kirk 3 years ago
parent
commit
3a250c86f3
  1. 33
      tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs

33
tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs

@ -547,5 +547,38 @@ namespace Avalonia.Base.UnitTests.Layout
Assert.True(root.IsMeasureValid);
Assert.True(root.IsArrangeValid);
}
[Fact]
public void GreatGrandparent_Can_Invalidate_Grandparent_Measure_During_Arrange()
{
// Issue #7706 (second part: scrollbar gets stuck)
var child = new LayoutTestControl();
var parent = new LayoutTestControl { Child = child };
var grandparent = new LayoutTestControl { Child = parent };
var greatGrandparent = new LayoutTestControl { Child = grandparent };
var root = new LayoutTestRoot { Child = greatGrandparent };
root.LayoutManager.ExecuteInitialLayoutPass();
greatGrandparent.DoArrangeOverride = (_, s) =>
{
grandparent.InvalidateMeasure();
return s;
};
child.InvalidateArrange();
greatGrandparent.InvalidateArrange();
root.LayoutManager.ExecuteLayoutPass();
Assert.True(child.IsMeasureValid);
Assert.True(child.IsArrangeValid);
Assert.True(parent.IsMeasureValid);
Assert.True(parent.IsArrangeValid);
Assert.True(greatGrandparent.IsMeasureValid);
Assert.True(greatGrandparent.IsArrangeValid);
Assert.True(root.IsMeasureValid);
Assert.True(root.IsArrangeValid);
}
}
}

Loading…
Cancel
Save