[gnome-software] details: Avoid restarting spinner



commit 94ce4fc8ad7e5432772fb9432905d7669985b329
Author: Philip Chimento <philip endlessm com>
Date:   Fri Nov 22 14:06:03 2019 -0800

    details: Avoid restarting spinner
    
    It seems that calling gtk_spinner_start() on an already started spinner
    can cause it to "skip" to a different position. In order to avoid this
    happening whenever this function is called, even if the state remains
    the same, only start the spinner if it is not yet visible.

 src/gs-details-page.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)
---
diff --git a/src/gs-details-page.c b/src/gs-details-page.c
index e4a98c49..1e3e1cca 100644
--- a/src/gs-details-page.c
+++ b/src/gs-details-page.c
@@ -381,8 +381,10 @@ gs_details_page_refresh_progress (GsDetailsPage *self)
        /* spinner */
        switch (state) {
        case AS_APP_STATE_REMOVING:
-               gtk_spinner_start (GTK_SPINNER (self->spinner_remove));
-               gtk_widget_set_visible (self->spinner_remove, TRUE);
+               if (!gtk_widget_get_visible (self->spinner_remove)) {
+                       gtk_spinner_start (GTK_SPINNER (self->spinner_remove));
+                       gtk_widget_set_visible (self->spinner_remove, TRUE);
+               }
                /* align text together with the spinner if we're showing it */
                gtk_widget_set_halign (self->box_progress2, GTK_ALIGN_START);
                break;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]