Skip to content

Commit 5b81cf5

Browse files
committed
Adjust Shadow Effect
1 parent 70543d2 commit 5b81cf5

File tree

5 files changed

+83
-74
lines changed

5 files changed

+83
-74
lines changed

Flow.Launcher.Core/Resource/Theme.cs

Lines changed: 62 additions & 61 deletions
Original file line numberDiff line numberDiff line change
@@ -189,7 +189,6 @@ public void SetCornerForWindow()
189189
/// </summary>
190190
public void SetBlurForWindow()
191191
{
192-
193192
//SetWindowAccent();
194193
var dict = GetThemeResourceDictionary(_settings.Theme);
195194
if (dict == null)
@@ -218,6 +217,7 @@ public void SetBlurForWindow()
218217
// windowBorderStyle.Setters.Add(windowBorderStyle.Setters.OfType<Setter>().FirstOrDefault(x => x.Property.Name == "Background"));
219218
//}
220219
Methods.SetWindowAttribute(new WindowInteropHelper(mainWindow).Handle, DWMWINDOWATTRIBUTE.DWMWA_SYSTEMBACKDROP_TYPE, 1);
220+
221221
}
222222
UpdateResourceDictionary(dict);
223223
}
@@ -655,73 +655,74 @@ public void AddDropShadowEffectToCurrentTheme()
655655
{
656656
var dict = GetCurrentResourceDictionary();
657657

658-
var windowBorderStyle = dict["WindowBorderStyle"] as Style;
659-
660-
var effectSetter = new Setter
661-
{
662-
Property = Border.EffectProperty,
663-
Value = new DropShadowEffect
664-
{
665-
Opacity = 0.3,
666-
ShadowDepth = 12,
667-
Direction = 270,
668-
BlurRadius = 30
669-
}
670-
};
671-
672-
var marginSetter = windowBorderStyle.Setters.FirstOrDefault(setterBase => setterBase is Setter setter && setter.Property == Border.MarginProperty) as Setter;
673-
if (marginSetter == null)
674-
{
675-
var margin = new Thickness(ShadowExtraMargin, 12, ShadowExtraMargin, ShadowExtraMargin);
676-
marginSetter = new Setter()
677-
{
678-
Property = Border.MarginProperty,
679-
Value = margin,
680-
};
681-
windowBorderStyle.Setters.Add(marginSetter);
682-
683-
SetResizeBoarderThickness(margin);
684-
}
685-
else
686-
{
687-
var baseMargin = (Thickness)marginSetter.Value;
688-
var newMargin = new Thickness(
689-
baseMargin.Left + ShadowExtraMargin,
690-
baseMargin.Top + ShadowExtraMargin,
691-
baseMargin.Right + ShadowExtraMargin,
692-
baseMargin.Bottom + ShadowExtraMargin);
693-
marginSetter.Value = newMargin;
694-
695-
SetResizeBoarderThickness(newMargin);
696-
}
697-
698-
windowBorderStyle.Setters.Add(effectSetter);
658+
//var windowBorderStyle = dict["WindowBorderStyle"] as Style;
659+
660+
//var effectSetter = new Setter
661+
//{
662+
// Property = Border.EffectProperty,
663+
// Value = new DropShadowEffect
664+
// {
665+
// Opacity = 0.3,
666+
// ShadowDepth = 12,
667+
// Direction = 270,
668+
// BlurRadius = 30
669+
// }
670+
//};
671+
672+
//var marginSetter = windowBorderStyle.Setters.FirstOrDefault(setterBase => setterBase is Setter setter && setter.Property == Border.MarginProperty) as Setter;
673+
//if (marginSetter == null)
674+
//{
675+
// var margin = new Thickness(ShadowExtraMargin, 12, ShadowExtraMargin, ShadowExtraMargin);
676+
// marginSetter = new Setter()
677+
// {
678+
// Property = Border.MarginProperty,
679+
// Value = margin,
680+
// };
681+
// windowBorderStyle.Setters.Add(marginSetter);
682+
683+
// SetResizeBoarderThickness(margin);
684+
//}
685+
//else
686+
//{
687+
// var baseMargin = (Thickness)marginSetter.Value;
688+
// var newMargin = new Thickness(
689+
// baseMargin.Left + ShadowExtraMargin,
690+
// baseMargin.Top + ShadowExtraMargin,
691+
// baseMargin.Right + ShadowExtraMargin,
692+
// baseMargin.Bottom + ShadowExtraMargin);
693+
// marginSetter.Value = newMargin;
694+
695+
// SetResizeBoarderThickness(newMargin);
696+
//}
697+
698+
//windowBorderStyle.Setters.Add(effectSetter);
699699

700700
UpdateResourceDictionary(dict);
701701
}
702702

703703
public void RemoveDropShadowEffectFromCurrentTheme()
704704
{
705705
var dict = GetCurrentResourceDictionary();
706-
var windowBorderStyle = dict["WindowBorderStyle"] as Style;
707-
708-
var effectSetter = windowBorderStyle.Setters.FirstOrDefault(setterBase => setterBase is Setter setter && setter.Property == Border.EffectProperty) as Setter;
709-
var marginSetter = windowBorderStyle.Setters.FirstOrDefault(setterBase => setterBase is Setter setter && setter.Property == Border.MarginProperty) as Setter;
710-
711-
if (effectSetter != null)
712-
{
713-
windowBorderStyle.Setters.Remove(effectSetter);
714-
}
715-
if (marginSetter != null)
716-
{
717-
var currentMargin = (Thickness)marginSetter.Value;
718-
var newMargin = new Thickness(
719-
currentMargin.Left - ShadowExtraMargin,
720-
currentMargin.Top - ShadowExtraMargin,
721-
currentMargin.Right - ShadowExtraMargin,
722-
currentMargin.Bottom - ShadowExtraMargin);
723-
marginSetter.Value = newMargin;
724-
}
706+
mainWindow.WindowStyle = WindowStyle.None;
707+
//var windowBorderStyle = dict["WindowBorderStyle"] as Style;
708+
709+
//var effectSetter = windowBorderStyle.Setters.FirstOrDefault(setterBase => setterBase is Setter setter && setter.Property == Border.EffectProperty) as Setter;
710+
//var marginSetter = windowBorderStyle.Setters.FirstOrDefault(setterBase => setterBase is Setter setter && setter.Property == Border.MarginProperty) as Setter;
711+
712+
//if (effectSetter != null)
713+
//{
714+
// windowBorderStyle.Setters.Remove(effectSetter);
715+
//}
716+
//if (marginSetter != null)
717+
//{
718+
// var currentMargin = (Thickness)marginSetter.Value;
719+
// var newMargin = new Thickness(
720+
// currentMargin.Left - ShadowExtraMargin,
721+
// currentMargin.Top - ShadowExtraMargin,
722+
// currentMargin.Right - ShadowExtraMargin,
723+
// currentMargin.Bottom - ShadowExtraMargin);
724+
// marginSetter.Value = newMargin;
725+
//}
725726

726727
SetResizeBoarderThickness(null);
727728

Flow.Launcher/Languages/en.xaml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,8 @@
104104
<system:String x:Key="AlwaysPreview">Always Preview</system:String>
105105
<system:String x:Key="AlwaysPreviewToolTip">Always open preview panel when Flow activates. Press {0} to toggle preview.</system:String>
106106
<system:String x:Key="shadowEffectNotAllowed">Shadow effect is not allowed while current theme has blur effect enabled</system:String>
107+
<system:String x:Key="shadowEffectRestart">The shadow effect transition takes effect after the program restarts</system:String>
108+
<system:String x:Key="shadowEffectNotAllowedBlur">Translucent themes cannot turn off shadow effects</system:String>
107109

108110
<!-- Setting Plugin -->
109111
<system:String x:Key="searchplugin">Search Plugin</system:String>

Flow.Launcher/MainWindow.xaml.cs

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,11 @@ public MainWindow(Settings settings, MainViewModel mainVM)
6767
var win = HwndSource.FromHwnd(handle);
6868
win.AddHook(WndProc);
6969
};
70+
if (_settings.UseDropShadowEffect == false) /* Shadow Effect */
71+
{
72+
FlowMainWindow.WindowStyle = WindowStyle.None;
73+
FlowMainWindow.AllowsTransparency = true;
74+
}
7075
}
7176

7277
DispatcherTimer timer = new DispatcherTimer { Interval = new TimeSpan(0, 0, 0, 0, 500), IsEnabled = false };

Flow.Launcher/SettingPages/ViewModels/SettingsPaneThemeViewModel.cs

Lines changed: 13 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -35,8 +35,8 @@ public Theme.ThemeData SelectedTheme
3535
_selectedTheme = value;
3636
ThemeManager.Instance.ChangeTheme(value.FileNameWithoutExtension);
3737

38-
if (ThemeManager.Instance.BlurEnabled && Settings.UseDropShadowEffect)
39-
DropShadowEffect = false;
38+
if (ThemeManager.Instance.BlurEnabled && Settings.UseDropShadowEffect == false)
39+
DropShadowEffect = true;
4040
ThemeManager.Instance.RefreshFrame();
4141
}
4242
}
@@ -46,20 +46,21 @@ public bool DropShadowEffect
4646
get => Settings.UseDropShadowEffect;
4747
set
4848
{
49-
if (ThemeManager.Instance.BlurEnabled && value)
49+
if (ThemeManager.Instance.BlurEnabled && value == false)
5050
{
51-
App.API.ShowMsgBox(InternationalizationManager.Instance.GetTranslation("shadowEffectNotAllowed"));
51+
App.API.ShowMsgBox(InternationalizationManager.Instance.GetTranslation("shadowEffectNotAllowedBlur"));
52+
Settings.UseDropShadowEffect = true;
5253
return;
5354
}
5455

55-
if (value)
56-
{
57-
ThemeManager.Instance.AddDropShadowEffectToCurrentTheme();
58-
}
59-
else
60-
{
61-
ThemeManager.Instance.RemoveDropShadowEffectFromCurrentTheme();
62-
}
56+
//if (value)
57+
//{
58+
// ThemeManager.Instance.AddDropShadowEffectToCurrentTheme();
59+
//}
60+
//else
61+
//{
62+
// ThemeManager.Instance.RemoveDropShadowEffectFromCurrentTheme();
63+
//}
6364

6465
Settings.UseDropShadowEffect = value;
6566
}

Flow.Launcher/SettingPages/Views/SettingsPaneTheme.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -375,7 +375,7 @@
375375
Title="{DynamicResource queryWindowShadowEffect}"
376376
Margin="0 8 0 0"
377377
Icon="&#xeb91;"
378-
Sub="{DynamicResource shadowEffectCPUUsage}">
378+
Sub="{DynamicResource shadowEffectRestart}">
379379
<ui:ToggleSwitch
380380
IsOn="{Binding DropShadowEffect}"
381381
OffContent="{DynamicResource disable}"

0 commit comments

Comments
 (0)