Skip to content

Commit fc78c0c

Browse files
authored
Merge pull request #295 from taooceros/ProgressBarOpt
Stop ProgressBar animation when Flow is hidden
2 parents d0af7a1 + 36e6f5e commit fc78c0c

File tree

2 files changed

+32
-3
lines changed

2 files changed

+32
-3
lines changed

Flow.Launcher/MainWindow.xaml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,7 @@
9797
Background="Transparent"/>
9898
</Grid>
9999
<Line x:Name="ProgressBar" HorizontalAlignment="Right"
100-
Style="{DynamicResource PendingLineStyle}" Visibility="{Binding ProgressBarVisibility, Mode=TwoWay}"
100+
Style="{DynamicResource PendingLineStyle}" Visibility="{Binding ProgressBarVisibility, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"
101101
Y1="0" Y2="0" X2="100" Height="2" Width="752" StrokeThickness="1">
102102
</Line>
103103
<ContentControl>

Flow.Launcher/MainWindow.xaml.cs

Lines changed: 31 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,6 +26,7 @@ public partial class MainWindow
2626
#region Private Fields
2727

2828
private readonly Storyboard _progressBarStoryboard = new Storyboard();
29+
private bool isProgressBarStoryboardPaused;
2930
private Settings _settings;
3031
private NotifyIcon _notifyIcon;
3132
private MainViewModel _viewModel;
@@ -52,7 +53,7 @@ private void OnClosing(object sender, CancelEventArgs e)
5253

5354
private void OnInitialized(object sender, EventArgs e)
5455
{
55-
56+
5657
}
5758

5859
private void OnLoaded(object sender, RoutedEventArgs _)
@@ -73,7 +74,7 @@ private void OnLoaded(object sender, RoutedEventArgs _)
7374
{
7475
if (e.PropertyName == nameof(MainViewModel.MainWindowVisibility))
7576
{
76-
if (Visibility == Visibility.Visible)
77+
if (_viewModel.MainWindowVisibility == Visibility.Visible)
7778
{
7879
Activate();
7980
QueryTextBox.Focus();
@@ -84,7 +85,34 @@ private void OnLoaded(object sender, RoutedEventArgs _)
8485
QueryTextBox.SelectAll();
8586
_viewModel.LastQuerySelected = true;
8687
}
88+
89+
if (_viewModel.ProgressBarVisibility == Visibility.Visible && isProgressBarStoryboardPaused)
90+
{
91+
_progressBarStoryboard.Resume();
92+
isProgressBarStoryboardPaused = false;
93+
}
8794
}
95+
else if (!isProgressBarStoryboardPaused)
96+
{
97+
_progressBarStoryboard.Pause();
98+
isProgressBarStoryboardPaused = true;
99+
}
100+
}
101+
else if (e.PropertyName == nameof(MainViewModel.ProgressBarVisibility))
102+
{
103+
Dispatcher.Invoke(() =>
104+
{
105+
if (_viewModel.ProgressBarVisibility == Visibility.Hidden && !isProgressBarStoryboardPaused)
106+
{
107+
_progressBarStoryboard.Pause();
108+
isProgressBarStoryboardPaused = true;
109+
}
110+
else if (_viewModel.MainWindowVisibility == Visibility.Visible && isProgressBarStoryboardPaused)
111+
{
112+
_progressBarStoryboard.Resume();
113+
isProgressBarStoryboardPaused = false;
114+
}
115+
}, System.Windows.Threading.DispatcherPriority.Render);
88116
}
89117
};
90118
_settings.PropertyChanged += (o, e) =>
@@ -170,6 +198,7 @@ private void InitProgressbarAnimation()
170198
_progressBarStoryboard.RepeatBehavior = RepeatBehavior.Forever;
171199
ProgressBar.BeginStoryboard(_progressBarStoryboard);
172200
_viewModel.ProgressBarVisibility = Visibility.Hidden;
201+
isProgressBarStoryboardPaused = true;
173202
}
174203

175204
private void OnMouseDown(object sender, MouseButtonEventArgs e)

0 commit comments

Comments
 (0)