From fb4601f65b0b51e58bd112d4c80e89965d44788e Mon Sep 17 00:00:00 2001 From: Dan Walmsley Date: Tue, 21 Jul 2020 17:24:54 -0300 Subject: [PATCH] clean up when detaching caption buttons and templates change. --- src/Avalonia.Controls/Chrome/CaptionButtons.cs | 6 ++---- src/Avalonia.Controls/Chrome/TitleBar.cs | 5 +++++ 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/src/Avalonia.Controls/Chrome/CaptionButtons.cs b/src/Avalonia.Controls/Chrome/CaptionButtons.cs index 75d6c366b8..a86cbc271b 100644 --- a/src/Avalonia.Controls/Chrome/CaptionButtons.cs +++ b/src/Avalonia.Controls/Chrome/CaptionButtons.cs @@ -38,12 +38,10 @@ namespace Avalonia.Controls.Chrome { if (_disposables != null) { - var layer = ChromeOverlayLayer.GetOverlayLayer(_hostWindow); - - layer?.Children.Remove(this); - _disposables.Dispose(); _disposables = null; + + _hostWindow = null; } } diff --git a/src/Avalonia.Controls/Chrome/TitleBar.cs b/src/Avalonia.Controls/Chrome/TitleBar.cs index 3061e0a06b..c0c8076dd8 100644 --- a/src/Avalonia.Controls/Chrome/TitleBar.cs +++ b/src/Avalonia.Controls/Chrome/TitleBar.cs @@ -42,6 +42,8 @@ namespace Avalonia.Controls.Chrome { base.OnApplyTemplate(e); + _captionButtons?.Detach(); + _captionButtons = e.NameScope.Get("PART_CaptionButtons"); if (VisualRoot is Window window) @@ -87,6 +89,9 @@ namespace Avalonia.Controls.Chrome base.OnDetachedFromVisualTree(e); _disposables?.Dispose(); + + _captionButtons?.Detach(); + _captionButtons = null; } } }