浏览代码

Merge pull request #3282 from MarchingCube/fix-window-close-memory-leak

Fix memory leak caused by styles staying applied after window close
Dariusz Komosiński 6 年之前
父节点
当前提交
8e7e8ebf35
共有 1 个文件被更改,包括 6 次插入0 次删除
  1. 6 0
      src/Avalonia.Controls/TopLevel.cs

+ 6 - 0
src/Avalonia.Controls/TopLevel.cs

@@ -269,6 +269,12 @@ namespace Avalonia.Controls
         /// </summary>
         /// </summary>
         protected virtual void HandleClosed()
         protected virtual void HandleClosed()
         {
         {
+            var logicalArgs = new LogicalTreeAttachmentEventArgs(this);
+            ((ILogical)this).NotifyDetachedFromLogicalTree(logicalArgs);
+
+            var visualArgs = new VisualTreeAttachmentEventArgs(this, this);
+            OnDetachedFromVisualTreeCore(visualArgs);
+
             (this as IInputRoot).MouseDevice?.TopLevelClosed(this);
             (this as IInputRoot).MouseDevice?.TopLevelClosed(this);
             PlatformImpl = null;
             PlatformImpl = null;
             OnClosed(EventArgs.Empty);
             OnClosed(EventArgs.Empty);