Steven Kirk 2 лет назад
Родитель
Сommit
06b7515b48
1 измененных файлов с 23 добавлено и 0 удалено
  1. 23 0
      tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs

+ 23 - 0
tests/Avalonia.Base.UnitTests/Layout/LayoutManagerTests.cs

@@ -59,6 +59,29 @@ namespace Avalonia.Base.UnitTests.Layout
             Assert.False(control.Arranged);
         }
 
+        [Fact]
+        public void Lays_Out_Descendents_That_Were_Invalidated_While_Ancestor_Was_Not_Visible()
+        {
+            // Issue #11076
+            var control = new LayoutTestControl();
+            var parent = new Decorator { Child = control };
+            var grandparent = new Decorator { Child = parent };
+            var root = new LayoutTestRoot { Child = grandparent };
+
+            root.LayoutManager.ExecuteInitialLayoutPass();
+
+            grandparent.IsVisible = false;
+            control.InvalidateMeasure();
+            root.LayoutManager.ExecuteInitialLayoutPass();
+
+            grandparent.IsVisible = true;
+
+            root.LayoutManager.ExecuteLayoutPass();
+            
+            Assert.True(control.IsMeasureValid);
+            Assert.True(control.IsArrangeValid);
+        }
+
         [Fact]
         public void Arranges_InvalidateArranged_Control()
         {