diff --git a/src/gui/gcal-calendar-button.c b/src/gui/gcal-calendar-button.c index eae6bc40..3c2e3b71 100644 --- a/src/gui/gcal-calendar-button.c +++ b/src/gui/gcal-calendar-button.c @@ -31,6 +31,7 @@ struct _GcalCalendarButton GtkWidget *calendar_listbox; GtkStack *icon_stack; + GtkSpinner *refreshing_spinner; GcalContext *context; @@ -168,16 +169,16 @@ icon_change_timeout_cb (gpointer data) { GcalCalendarButton *self; GcalManager *manager; + gboolean synchronizing; self = GCAL_CALENDAR_BUTTON (data); manager = gcal_context_get_manager (self->context); + synchronizing = gcal_manager_get_synchronizing (manager); g_debug ("Updating calendar icon to spinner"); - if (gcal_manager_get_synchronizing (manager)) - gtk_stack_set_visible_child_name (self->icon_stack, "spinner"); - else - gtk_stack_set_visible_child_name (self->icon_stack, "icon"); + gtk_stack_set_visible_child_name (self->icon_stack, synchronizing ? "spinner" : "icon"); + gtk_spinner_set_spinning (self->refreshing_spinner, synchronizing); self->icon_changed_source_id = 0; return G_SOURCE_REMOVE; @@ -355,6 +356,7 @@ gcal_calendar_button_class_init (GcalCalendarButtonClass *klass) gtk_widget_class_bind_template_child (widget_class, GcalCalendarButton, calendar_listbox); gtk_widget_class_bind_template_child (widget_class, GcalCalendarButton, icon_stack); + gtk_widget_class_bind_template_child (widget_class, GcalCalendarButton, refreshing_spinner); gtk_widget_class_bind_template_callback (widget_class, on_listbox_row_activated_cb); } diff --git a/src/gui/gcal-calendar-button.ui b/src/gui/gcal-calendar-button.ui index fe1f1714..c77eb5a7 100644 --- a/src/gui/gcal-calendar-button.ui +++ b/src/gui/gcal-calendar-button.ui @@ -38,7 +38,6 @@ spinner - True Synchronizing remote calendars…