[recipes] Properly handle timer widget state



commit 71b406bd34c0373f075495eef488e7ba57e1f124
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Feb 6 15:46:57 2017 +0100

    Properly handle timer widget state
    
    We were not getting the blue start button back in all cases
    when switching between preview and edit.
    
    https://bugzilla.gnome.org/show_bug.cgi?id=778202

 src/gr-cooking-view.c |    8 +++-----
 src/gr-time-widget.c  |    5 +++++
 2 files changed, 8 insertions(+), 5 deletions(-)
---
diff --git a/src/gr-cooking-view.c b/src/gr-cooking-view.c
index 77cb2ce..75c2034 100644
--- a/src/gr-cooking-view.c
+++ b/src/gr-cooking-view.c
@@ -161,6 +161,7 @@ setup_step (GrCookingView *view)
 
         if (s->timer) {
                 gboolean active;
+
                 g_object_get (s->timer, "active", &active, NULL);
                 g_object_set (view->cooking_timer, "timer", s->timer, NULL);
                 gtk_stack_set_visible_child_name (GTK_STACK (view->cooking_stack), "timer");
@@ -260,8 +261,6 @@ setup_steps (GrCookingView *view)
 {
         g_auto(GStrv) steps = NULL;
         int i;
-        int image;
-        guint64 timer;
 
         if (!view->instructions || !view->images)
                 return;
@@ -273,11 +272,10 @@ setup_steps (GrCookingView *view)
         g_ptr_array_set_size (view->steps, 0);
         for (i = 0; steps[i]; i++) {
                 const char *p, *q;
+                int image = -1;
+                guint64 timer = 0;
                 g_autofree char *step = NULL;
 
-                image = -1;
-                timer = 0;
-
                 p = strstr (steps[i], "[image:");
                 if (p) {
                         g_autofree char *prefix = NULL;
diff --git a/src/gr-time-widget.c b/src/gr-time-widget.c
index bfe02ca..e68a76a 100644
--- a/src/gr-time-widget.c
+++ b/src/gr-time-widget.c
@@ -82,6 +82,8 @@ set_timer (GrTimeWidget *self,
         GrTimer *old = self->timer;
 
         if (g_set_object (&self->timer, timer)) {
+                gboolean active;
+
                 if (self->handler) {
                         g_signal_handler_disconnect (old, self->handler);
                         self->handler = 0;
@@ -92,6 +94,9 @@ set_timer (GrTimeWidget *self,
                 }
                 g_object_set (self->timer_widget, "timer", timer, NULL);
                 g_object_notify (G_OBJECT (self), "timer");
+
+                g_object_get (timer, "active", &active, NULL);
+                gtk_stack_set_visible_child_name (GTK_STACK (self->timer_button_stack), active ? "active" : 
"start");
         }
 }
 


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