From 034d880a668a8112f25c1877e3f5847c71dd868b Mon Sep 17 00:00:00 2001 From: GabrielDuf Date: Wed, 8 Jul 2026 09:57:58 -0400 Subject: [PATCH] Stop indeterminate ProgressBar clocks when hidden (GPU usage) --- .../ViewModels/Pages/SettingsPages/InternetViewModel.cs | 4 +++- .../Views/Controls/Settings/SecureCheckboxCard.cs | 4 +++- .../Views/DialogPages/PackageDetailsWindow.axaml | 2 +- src/UniGetUI.Avalonia/Views/Pages/HelpPage.axaml | 2 +- src/UniGetUI.Avalonia/Views/Pages/ReleaseNotesPage.axaml | 2 +- .../Views/Pages/SettingsPages/InstallOptionsPanel.axaml | 2 +- .../Views/Pages/SettingsPages/SourceManagerCard.axaml | 2 +- src/UniGetUI.Avalonia/Views/SidebarView.axaml | 6 +++--- .../Views/SoftwarePages/AbstractPackagesPage.axaml | 2 +- 9 files changed, 15 insertions(+), 11 deletions(-) diff --git a/src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/InternetViewModel.cs b/src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/InternetViewModel.cs index 0f8249f65..b2e0f3c6a 100644 --- a/src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/InternetViewModel.cs +++ b/src/UniGetUI.Avalonia/ViewModels/Pages/SettingsPages/InternetViewModel.cs @@ -34,7 +34,7 @@ public SettingsCard BuildCredentialsCard() { _savingIndicator = new ProgressBar { - IsIndeterminate = true, + IsIndeterminate = false, Opacity = 0, Margin = new Thickness(0, -8, 0, 0), }; @@ -172,6 +172,7 @@ private async Task SaveCredentialsAsync() { if (_usernameBox is null || _passwordBox is null || _savingIndicator is null) return; _savingIndicator.Opacity = 1; + _savingIndicator.IsIndeterminate = true; string u = _usernameBox.Text ?? ""; string p = _passwordBox.Text ?? ""; await Task.Delay(500); @@ -180,6 +181,7 @@ private async Task SaveCredentialsAsync() CoreSettings.SetProxyCredentials(u, p); InternetViewModel.ApplyProxyToProcess(); _savingIndicator.Opacity = 0; + _savingIndicator.IsIndeterminate = false; } [RelayCommand] diff --git a/src/UniGetUI.Avalonia/Views/Controls/Settings/SecureCheckboxCard.cs b/src/UniGetUI.Avalonia/Views/Controls/Settings/SecureCheckboxCard.cs index 89dcf79f7..2e3bab453 100644 --- a/src/UniGetUI.Avalonia/Views/Controls/Settings/SecureCheckboxCard.cs +++ b/src/UniGetUI.Avalonia/Views/Controls/Settings/SecureCheckboxCard.cs @@ -96,12 +96,14 @@ public SecureCheckboxCard() }; _loading = new ProgressBar { - IsIndeterminate = true, + IsIndeterminate = false, IsVisible = false, Width = 20, Height = 20, Margin = new Thickness(0, 0, 4, 0), }; + // Keep the indeterminate clock off while hidden so it doesn't pin the render loop. + _loading.Bind(ProgressBar.IsIndeterminateProperty, _loading.GetObservable(Visual.IsVisibleProperty)); _textblock = new TextBlock { VerticalAlignment = VerticalAlignment.Center, diff --git a/src/UniGetUI.Avalonia/Views/DialogPages/PackageDetailsWindow.axaml b/src/UniGetUI.Avalonia/Views/DialogPages/PackageDetailsWindow.axaml index e4ff126eb..cde1c13c2 100644 --- a/src/UniGetUI.Avalonia/Views/DialogPages/PackageDetailsWindow.axaml +++ b/src/UniGetUI.Avalonia/Views/DialogPages/PackageDetailsWindow.axaml @@ -101,7 +101,7 @@ - - diff --git a/src/UniGetUI.Avalonia/Views/Pages/SettingsPages/SourceManagerCard.axaml b/src/UniGetUI.Avalonia/Views/Pages/SettingsPages/SourceManagerCard.axaml index b2034fe42..4d6b84d79 100644 --- a/src/UniGetUI.Avalonia/Views/Pages/SettingsPages/SourceManagerCard.axaml +++ b/src/UniGetUI.Avalonia/Views/Pages/SettingsPages/SourceManagerCard.axaml @@ -46,7 +46,7 @@ - diff --git a/src/UniGetUI.Avalonia/Views/SidebarView.axaml b/src/UniGetUI.Avalonia/Views/SidebarView.axaml index 872d3e693..61e47a35b 100644 --- a/src/UniGetUI.Avalonia/Views/SidebarView.axaml +++ b/src/UniGetUI.Avalonia/Views/SidebarView.axaml @@ -40,7 +40,7 @@ VerticalAlignment="Center" IsVisible="{Binding $parent[local:SidebarView].ShowLabels}"/> - - -