Skip to content

Commit 494e947

Browse files
committed
Code quality
1 parent 82909cd commit 494e947

File tree

1 file changed

+28
-21
lines changed

1 file changed

+28
-21
lines changed

Flow.Launcher/MainWindow.xaml.cs

Lines changed: 28 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ private async void OnLoaded(object sender, RoutedEventArgs _)
241241
};
242242

243243
// QueryTextBox.Text change detection (modified to only work when character count is 1 or higher)
244-
QueryTextBox.TextChanged += (sender, e) => UpdateClockPanelVisibility();
244+
QueryTextBox.TextChanged += (s, e) => UpdateClockPanelVisibility();
245245

246246
// Detecting ContextMenu.Visibility changes
247247
DependencyPropertyDescriptor
@@ -351,15 +351,13 @@ private void OnKeyDown(object sender, KeyEventArgs e)
351351
_viewModel.LoadContextMenuCommand.Execute(null);
352352
e.Handled = true;
353353
}
354-
355354
break;
356355
case Key.Left:
357356
if (!_viewModel.QueryResultsSelected() && QueryTextBox.CaretIndex == 0)
358357
{
359358
_viewModel.EscCommand.Execute(null);
360359
e.Handled = true;
361360
}
362-
363361
break;
364362
case Key.Back:
365363
if (specialKeyState.CtrlPressed)
@@ -378,7 +376,6 @@ private void OnKeyDown(object sender, KeyEventArgs e)
378376
}
379377
}
380378
}
381-
382379
break;
383380
default:
384381
break;
@@ -864,16 +861,18 @@ private void WindowAnimation()
864861
private void UpdateClockPanelVisibility()
865862
{
866863
if (QueryTextBox == null || ContextMenu == null || History == null || ClockPanel == null)
864+
{
867865
return;
866+
}
868867

868+
// ✅ Initialize animation length & duration
869869
var animationLength = _settings.AnimationSpeed switch
870870
{
871871
AnimationSpeeds.Slow => 560,
872872
AnimationSpeeds.Medium => 360,
873873
AnimationSpeeds.Fast => 160,
874874
_ => _settings.CustomAnimationLength
875875
};
876-
877876
var animationDuration = TimeSpan.FromMilliseconds(animationLength * 2 / 3);
878877

879878
// ✅ Conditions for showing ClockPanel (No query input & ContextMenu, History are closed)
@@ -890,15 +889,21 @@ private void UpdateClockPanelVisibility()
890889
}
891890

892891
// ✅ 2. When ContextMenu is closed, keep it Hidden if there's text in the query (remember previous state)
893-
if (ContextMenu.Visibility != Visibility.Visible && QueryTextBox.Text.Length > 0)
892+
else if (QueryTextBox.Text.Length > 0)
894893
{
895894
_viewModel.ClockPanelVisibility = Visibility.Hidden;
896895
_viewModel.ClockPanelOpacity = 0.0;
897896
return;
898897
}
899898

899+
// ✅ Prevent multiple animations
900+
if (_isClockPanelAnimating)
901+
{
902+
return;
903+
}
904+
900905
// ✅ 3. When hiding ClockPanel (apply fade-out animation)
901-
if ((!shouldShowClock) && _viewModel.ClockPanelVisibility == Visibility.Visible && !_isClockPanelAnimating)
906+
if ((!shouldShowClock) && _viewModel.ClockPanelVisibility == Visibility.Visible)
902907
{
903908
_isClockPanelAnimating = true;
904909

@@ -920,32 +925,32 @@ private void UpdateClockPanelVisibility()
920925
}
921926

922927
// ✅ 4. When showing ClockPanel (apply fade-in animation)
923-
else if (shouldShowClock && _viewModel.ClockPanelVisibility != Visibility.Visible && !_isClockPanelAnimating)
928+
else if (shouldShowClock && _viewModel.ClockPanelVisibility != Visibility.Visible)
924929
{
925930
_isClockPanelAnimating = true;
926931

927-
Application.Current.Dispatcher.Invoke(() =>
932+
_viewModel.ClockPanelVisibility = Visibility.Visible; // ✅ Set Visibility to Visible first
933+
934+
var fadeIn = new DoubleAnimation
928935
{
929-
_viewModel.ClockPanelVisibility = Visibility.Visible; // ✅ Set Visibility to Visible first
936+
From = 0.0,
937+
To = 1.0,
938+
Duration = animationDuration,
939+
FillBehavior = FillBehavior.HoldEnd
940+
};
930941

931-
var fadeIn = new DoubleAnimation
932-
{
933-
From = 0.0,
934-
To = 1.0,
935-
Duration = animationDuration,
936-
FillBehavior = FillBehavior.HoldEnd
937-
};
938-
939-
fadeIn.Completed += (s, e) => _isClockPanelAnimating = false;
940-
ClockPanel.BeginAnimation(OpacityProperty, fadeIn);
941-
}, DispatcherPriority.Render);
942+
fadeIn.Completed += (s, e) => _isClockPanelAnimating = false;
943+
944+
ClockPanel.BeginAnimation(OpacityProperty, fadeIn);
942945
}
943946
}
944947

945948
private static double GetOpacityFromStyle(Style style, double defaultOpacity = 1.0)
946949
{
947950
if (style == null)
951+
{
948952
return defaultOpacity;
953+
}
949954

950955
foreach (Setter setter in style.Setters.Cast<Setter>())
951956
{
@@ -961,7 +966,9 @@ private static double GetOpacityFromStyle(Style style, double defaultOpacity = 1
961966
private static Thickness GetThicknessFromStyle(Style style, Thickness defaultThickness)
962967
{
963968
if (style == null)
969+
{
964970
return defaultThickness;
971+
}
965972

966973
foreach (Setter setter in style.Setters.Cast<Setter>())
967974
{

0 commit comments

Comments
 (0)