From 2ed5de320a92eb6f70b91516ec49971f450a675e Mon Sep 17 00:00:00 2001 From: Jack251970 <1160210343@qq.com> Date: Sun, 16 Mar 2025 15:49:24 +0800 Subject: [PATCH] Improve sys plugin theme selector --- .../ViewModels/SettingsPaneThemeViewModel.cs | 1 + .../Flow.Launcher.Plugin.Sys/ThemeSelector.cs | 16 ++++++++++++---- 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/Flow.Launcher/SettingPages/ViewModels/SettingsPaneThemeViewModel.cs b/Flow.Launcher/SettingPages/ViewModels/SettingsPaneThemeViewModel.cs index 035635774..cd51e760e 100644 --- a/Flow.Launcher/SettingPages/ViewModels/SettingsPaneThemeViewModel.cs +++ b/Flow.Launcher/SettingPages/ViewModels/SettingsPaneThemeViewModel.cs @@ -56,6 +56,7 @@ public partial class SettingsPaneThemeViewModel : BaseModel ThemeManager.Instance.RefreshFrame(); } } + public bool IsBackdropEnabled { get diff --git a/Plugins/Flow.Launcher.Plugin.Sys/ThemeSelector.cs b/Plugins/Flow.Launcher.Plugin.Sys/ThemeSelector.cs index 38619cbbc..19fd18114 100644 --- a/Plugins/Flow.Launcher.Plugin.Sys/ThemeSelector.cs +++ b/Plugins/Flow.Launcher.Plugin.Sys/ThemeSelector.cs @@ -19,7 +19,7 @@ namespace Flow.Launcher.Plugin.Sys // Theme select codes simplified from SettingsPaneThemeViewModel.cs private Theme.ThemeData _selectedTheme; - private Theme.ThemeData SelectedTheme + public Theme.ThemeData SelectedTheme { get => _selectedTheme ??= Themes.Find(v => v.FileNameWithoutExtension == _theme.CurrentTheme); set @@ -27,11 +27,19 @@ namespace Flow.Launcher.Plugin.Sys _selectedTheme = value; _theme.ChangeTheme(value.FileNameWithoutExtension); - if (_theme.BlurEnabled && _settings.UseDropShadowEffect) + // when changed non-blur theme, change to backdrop to none + if (!_theme.BlurEnabled) { - _theme.RemoveDropShadowEffectFromCurrentTheme(); - _settings.UseDropShadowEffect = false; + _settings.BackdropType = BackdropTypes.None; } + + // dropshadow on and control disabled.(user can't change dropshadow with blur theme) + if (_theme.BlurEnabled) + { + _settings.UseDropShadowEffect = true; + } + + _theme.RefreshFrame(); } }