From ec32ff77b2efc38e8194e296d113ce724f53473a Mon Sep 17 00:00:00 2001 From: MBucari Date: Tue, 4 Nov 2025 22:07:29 -0700 Subject: [PATCH] Fix theme not being applied when changed by the system (#1368) --- Source/LibationAvalonia/App.axaml.cs | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/Source/LibationAvalonia/App.axaml.cs b/Source/LibationAvalonia/App.axaml.cs index bbff098b..d5c2cb31 100644 --- a/Source/LibationAvalonia/App.axaml.cs +++ b/Source/LibationAvalonia/App.axaml.cs @@ -230,7 +230,8 @@ namespace LibationAvalonia private static void ShowMainWindow(IClassicDesktopStyleApplicationLifetime desktop) { Configuration.Instance.PropertyChanged += ThemeVariant_PropertyChanged; - OpenAndApplyTheme(Configuration.Instance.GetString(propertyName: nameof(ThemeVariant))); + Current.ActualThemeVariantChanged += OnActualThemeVariantChanged; + OnActualThemeVariantChanged(Current, EventArgs.Empty); var mainWindow = new MainWindow(); desktop.MainWindow = MainWindow = mainWindow; @@ -243,6 +244,9 @@ namespace LibationAvalonia private static void ThemeVariant_PropertyChanged(object sender, PropertyChangedEventArgsEx e) => OpenAndApplyTheme(e.NewValue as string); + private static void OnActualThemeVariantChanged(object? sender, EventArgs e) + => OpenAndApplyTheme(Configuration.Instance.GetString(propertyName: nameof(ThemeVariant))); + private static void OpenAndApplyTheme(string? themeVariant) { using var themePersister = ChardonnayThemePersister.Create();