Browse Source

Create VisualNode for invisible controls.

If we don't do this, then a `VisualNode` can appear twice in its parent `ChildrenCollection` when an earlier sibling is made invisible.

Fixes #3115
pull/3118/head
Steven Kirk 7 years ago
parent
commit
534852af75
  1. 4
      src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs
  2. 3
      tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs

4
src/Avalonia.Visuals/Rendering/SceneGraph/SceneBuilder.cs

@ -240,6 +240,10 @@ namespace Avalonia.Rendering.SceneGraph
}
}
}
else
{
contextImpl.BeginUpdate(node).Dispose();
}
}
private void UpdateSize(Scene scene)

3
tests/Avalonia.Visuals.UnitTests/Rendering/SceneGraph/SceneBuilderTests.cs

@ -624,8 +624,9 @@ namespace Avalonia.Visuals.UnitTests.Rendering.SceneGraph
var panelNode = (VisualNode)scene.FindNode(panel);
sceneBuilder.Update(scene, decorator);
Assert.Equal(1, panelNode.Children.Count);
Assert.Equal(2, panelNode.Children.Count);
Assert.False(panelNode.Children[0].Disposed);
Assert.False(panelNode.Children[1].Disposed);
}
}

Loading…
Cancel
Save