diff --git a/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs b/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs index e472192c38..7adebcd1dc 100644 --- a/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs +++ b/src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs @@ -256,16 +256,13 @@ namespace Avalonia.Rendering.SceneGraph scene.Remove(node); node.SubTreeUpdated = true; + scene.Layers[node.LayerRoot].Dirty.Add(node.Bounds); + foreach (VisualNode child in node.Children) { var geometry = child as IDrawOperation; var visual = child as VisualNode; - if (geometry != null) - { - scene.Layers[child.LayerRoot].Dirty.Add(geometry.Bounds); - } - if (visual != null) { Deindex(scene, visual); diff --git a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs b/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs index af3abb0136..c51e8941a9 100644 --- a/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs +++ b/tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs @@ -415,6 +415,7 @@ namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph Assert.Equal(1, borderNode.DrawOperations.Count); Assert.Null(result.FindNode(decorator)); + Assert.Equal(new Rect(0, 0, 100, 100), result.Layers.Single().Dirty.Single()); } } @@ -458,6 +459,7 @@ namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph Assert.Null(result.FindNode(border)); Assert.Null(result.FindNode(canvas)); + Assert.Equal(new Rect(0, 0, 100, 100), result.Layers.Single().Dirty.Single()); } }