From 5cfc20abb2f165906323b4fdadbff1fc5f86e8c7 Mon Sep 17 00:00:00 2001 From: Steven Kirk Date: Mon, 29 Jun 2020 14:20:29 +0200 Subject: [PATCH 1/2] Removed unused call to IsSelectedWithPartialAt. --- src/Avalonia.Controls/SelectionModel.cs | 2 -- 1 file changed, 2 deletions(-) diff --git a/src/Avalonia.Controls/SelectionModel.cs b/src/Avalonia.Controls/SelectionModel.cs index ff1c0260bb..aa6552579f 100644 --- a/src/Avalonia.Controls/SelectionModel.cs +++ b/src/Avalonia.Controls/SelectionModel.cs @@ -189,8 +189,6 @@ namespace Avalonia.Controls } set { - var isSelected = IsSelectedWithPartialAt(value); - if (!IsSelectedAt(value) || SelectedItems.Count > 1) { using var operation = new Operation(this); From be73db7bebc51232d4168a7f660cf0aff5ab9f0c Mon Sep 17 00:00:00 2001 From: Nikita Tsukanov Date: Mon, 29 Jun 2020 17:24:56 +0300 Subject: [PATCH 2/2] Dispose the renderer before detaching visuals from the tree (perf) See https://github.com/AvaloniaUI/Avalonia/issues/3622 --- src/Avalonia.Controls/TopLevel.cs | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/Avalonia.Controls/TopLevel.cs b/src/Avalonia.Controls/TopLevel.cs index 6c3a2d4a03..f058942116 100644 --- a/src/Avalonia.Controls/TopLevel.cs +++ b/src/Avalonia.Controls/TopLevel.cs @@ -340,6 +340,9 @@ namespace Avalonia.Controls _globalStyles.GlobalStylesRemoved -= ((IStyleHost)this).StylesRemoved; } + Renderer?.Dispose(); + Renderer = null; + var logicalArgs = new LogicalTreeAttachmentEventArgs(this, this, null); ((ILogical)this).NotifyDetachedFromLogicalTree(logicalArgs); @@ -349,8 +352,7 @@ namespace Avalonia.Controls (this as IInputRoot).MouseDevice?.TopLevelClosed(this); PlatformImpl = null; OnClosed(EventArgs.Empty); - Renderer?.Dispose(); - Renderer = null; + LayoutManager?.Dispose(); }