From f3323fd960778897a45d7dd31a1f86808f232c28 Mon Sep 17 00:00:00 2001 From: Filippo Ferrario <102259289+ferrariofilippo@users.noreply.github.com> Date: Wed, 13 Aug 2025 00:01:06 +0200 Subject: [PATCH 1/4] Fix: Update toolbar's Layout icon on layout changes --- .../ThemedIcon/ThemedIcon.Properties.cs | 17 +++++++++++++++++ src/Files.App.Controls/ThemedIcon/ThemedIcon.cs | 1 + 2 files changed, 18 insertions(+) diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs b/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs index c385aab30c6c..263a8545e5cf 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIcon.Properties.cs @@ -97,5 +97,22 @@ partial void OnToggleBehaviorChanged(ToggleBehaviors newValue) { UpdateVisualStates(); } + + private void OnStylePropertyChanged(DependencyObject sender, DependencyProperty dp) + { + if (dp != StyleProperty) + return; + + DispatcherQueue.TryEnqueue(() => + { + GetTemplateParts(); + OnFilledIconChanged(); + OnOutlineIconChanged(); + OnLayeredIconChanged(); + OnIconTypeChanged(); + OnIconColorTypeChanged(); + OnIconSizeChanged(); + }); + } } } diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs index c7cfdde8932f..855c5203d181 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs @@ -20,6 +20,7 @@ public partial class ThemedIcon : Control public ThemedIcon() { DefaultStyleKey = typeof(ThemedIcon); + RegisterPropertyChangedCallback(StyleProperty, OnStylePropertyChanged); } protected override void OnApplyTemplate() From 79d057eeeaa5208700a124ae5e53658db23bcaa4 Mon Sep 17 00:00:00 2001 From: Filippo Ferrario <102259289+ferrariofilippo@users.noreply.github.com> Date: Wed, 13 Aug 2025 00:12:35 +0200 Subject: [PATCH 2/4] Dispose --- src/Files.App.Controls/ThemedIcon/ThemedIcon.cs | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs index 855c5203d181..baf93fca3adc 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs @@ -17,10 +17,20 @@ public partial class ThemedIcon : Control private Viewbox? _layeredViewBox; private Canvas? _layeredCanvas; + private long _stylePropertyChangedToken; + public ThemedIcon() { DefaultStyleKey = typeof(ThemedIcon); - RegisterPropertyChangedCallback(StyleProperty, OnStylePropertyChanged); + _stylePropertyChangedToken = RegisterPropertyChangedCallback( + StyleProperty, + OnStylePropertyChanged + ); + } + + ~ThemedIcon() + { + UnregisterPropertyChangedCallback(StyleProperty, _stylePropertyChangedToken); } protected override void OnApplyTemplate() From 88209e702c8a5cfe4680c44ac16e082c1ac20bc8 Mon Sep 17 00:00:00 2001 From: Yair <39923744+yaira2@users.noreply.github.com> Date: Tue, 12 Aug 2025 22:42:22 -0400 Subject: [PATCH 3/4] Suggested change --- src/Files.App.Controls/ThemedIcon/ThemedIcon.cs | 5 ++++- src/Files.App/UserControls/NavigationToolbar.xaml | 10 +++++----- 2 files changed, 9 insertions(+), 6 deletions(-) diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs index baf93fca3adc..f6e7663309eb 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs @@ -26,11 +26,14 @@ public ThemedIcon() StyleProperty, OnStylePropertyChanged ); + + Unloaded += OnUnloaded; } - ~ThemedIcon() + private void OnUnloaded(object sender, RoutedEventArgs e) { UnregisterPropertyChangedCallback(StyleProperty, _stylePropertyChangedToken); + Unloaded -= OnUnloaded; } protected override void OnApplyTemplate() diff --git a/src/Files.App/UserControls/NavigationToolbar.xaml b/src/Files.App/UserControls/NavigationToolbar.xaml index 227ecf2e1a6c..1cbb9df0ebf5 100644 --- a/src/Files.App/UserControls/NavigationToolbar.xaml +++ b/src/Files.App/UserControls/NavigationToolbar.xaml @@ -297,12 +297,12 @@ - + - + From d69fa24c5f40eee43bce15dac7c76a4ab0b2c0dd Mon Sep 17 00:00:00 2001 From: Yair <39923744+yaira2@users.noreply.github.com> Date: Wed, 13 Aug 2025 09:52:55 -0400 Subject: [PATCH 4/4] Update ThemedIcon.cs --- src/Files.App.Controls/ThemedIcon/ThemedIcon.cs | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs index f6e7663309eb..17f1f4a2b75b 100644 --- a/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs +++ b/src/Files.App.Controls/ThemedIcon/ThemedIcon.cs @@ -33,6 +33,7 @@ public ThemedIcon() private void OnUnloaded(object sender, RoutedEventArgs e) { UnregisterPropertyChangedCallback(StyleProperty, _stylePropertyChangedToken); + IsEnabledChanged -= OnIsEnabledChanged; Unloaded -= OnUnloaded; } @@ -266,4 +267,4 @@ private void OnIconSizeChanged() Height = Width = IconSize; } } -} +} \ No newline at end of file