From 53c9fa76f8d66ec2e57ac8cd25900208a5077e9d Mon Sep 17 00:00:00 2001 From: sabihoshi Date: Thu, 22 Sep 2022 12:13:23 +0800 Subject: [PATCH] Fix "Use system setting" theme not saving properly --- .../ViewModels/MainWindowViewModel.cs | 8 ++++---- .../ViewModels/SettingsPageViewModel.cs | 11 +---------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/GenshinLyreMidiPlayer.WPF/ViewModels/MainWindowViewModel.cs b/GenshinLyreMidiPlayer.WPF/ViewModels/MainWindowViewModel.cs index 37e432b..708bf8c 100644 --- a/GenshinLyreMidiPlayer.WPF/ViewModels/MainWindowViewModel.cs +++ b/GenshinLyreMidiPlayer.WPF/ViewModels/MainWindowViewModel.cs @@ -62,11 +62,11 @@ public void ToggleTheme() { ThemeManager.Current.ApplicationTheme = _theme.GetTheme() switch { - ThemeType.Unknown => ApplicationTheme.Dark, - ThemeType.Dark => ApplicationTheme.Light, - ThemeType.Light => ApplicationTheme.Dark, + ThemeType.Unknown => ApplicationTheme.Dark, + ThemeType.Dark => ApplicationTheme.Light, + ThemeType.Light => ApplicationTheme.Dark, ThemeType.HighContrast => ApplicationTheme.Dark, - _ => ApplicationTheme.Dark + _ => ApplicationTheme.Dark }; SettingsView.OnThemeChanged(); diff --git a/GenshinLyreMidiPlayer.WPF/ViewModels/SettingsPageViewModel.cs b/GenshinLyreMidiPlayer.WPF/ViewModels/SettingsPageViewModel.cs index 7993045..5e3d913 100644 --- a/GenshinLyreMidiPlayer.WPF/ViewModels/SettingsPageViewModel.cs +++ b/GenshinLyreMidiPlayer.WPF/ViewModels/SettingsPageViewModel.cs @@ -319,20 +319,11 @@ await Task.Delay(start, PlayTimerToken.Token) [UsedImplicitly] public void OnThemeChanged() { - ThemeManager.Current.ApplicationTheme ??= _theme.GetSystemTheme() switch - { - ThemeType.Unknown => ApplicationTheme.Light, - ThemeType.Dark => ApplicationTheme.Dark, - ThemeType.Light => ApplicationTheme.Light, - ThemeType.HighContrast => ApplicationTheme.Dark, - _ => ApplicationTheme.Light - }; - _theme.SetTheme(ThemeManager.Current.ApplicationTheme switch { ApplicationTheme.Light => ThemeType.Light, ApplicationTheme.Dark => ThemeType.Dark, - _ => ThemeType.Light + _ => _theme.GetSystemTheme() }); Settings.Modify(s => s.AppTheme = (int?) ThemeManager.Current.ApplicationTheme ?? -1);