Browse Source

Don't dispose replaced visual nodes if they're replaced with themselves.

Jeremy Koritzinsky 7 years ago
parent
commit
458d8bf760
1 changed files with 5 additions and 2 deletions
  1. 5 2
      src/Avalonia.Visuals/Rendering/SceneGraph/VisualNode.cs

+ 5 - 2
src/Avalonia.Visuals/Rendering/SceneGraph/VisualNode.cs

@@ -148,7 +148,10 @@ namespace Avalonia.Rendering.SceneGraph
             EnsureChildrenCreated();
             EnsureChildrenCreated();
             var old = _children[index];
             var old = _children[index];
             _children[index] = node;
             _children[index] = node;
-            old.Dispose();
+            if (node != old)
+            {
+                old.Dispose(); 
+            }
         }
         }
 
 
         /// <summary>
         /// <summary>
@@ -329,7 +332,7 @@ namespace Avalonia.Rendering.SceneGraph
                 _drawOperationsCloned = false;
                 _drawOperationsCloned = false;
             }
             }
         }
         }
-
+        
         public void Dispose()
         public void Dispose()
         {
         {
             foreach (var child in Children)
             foreach (var child in Children)