[recipes] Make the cooking overlay not block input



commit 4bacbc813c200a9bed5b39d19662e9daf1c7a3f4
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Feb 22 22:33:38 2017 -0500

    Make the cooking overlay not block input
    
    The help overlay in cooking mode was blocking input, even
    when it was fully faded out. Avoid that by hiding the
    widget after fadeout.

 src/gr-cooking-page.c  |    9 +++++++++
 src/gr-cooking-page.ui |    2 +-
 2 files changed, 10 insertions(+), 1 deletions(-)
---
diff --git a/src/gr-cooking-page.c b/src/gr-cooking-page.c
index 8c8d5c1..edf6eec 100644
--- a/src/gr-cooking-page.c
+++ b/src/gr-cooking-page.c
@@ -147,6 +147,13 @@ update_steppers (GrCookingPage *page)
 }
 
 static void
+on_child_revealed (GrCookingPage *page)
+{
+        if (!gtk_revealer_get_reveal_child (GTK_REVEALER (page->overlay_revealer)))
+                    gtk_widget_hide (page->overlay_revealer);
+}
+
+static void
 hide_overlay (gpointer data,
               gboolean fade)
 {
@@ -164,6 +171,7 @@ show_overlay (gpointer data)
 {
         GrCookingPage *page = data;
 
+        gtk_widget_show (page->overlay_revealer);
         gtk_revealer_set_reveal_child (GTK_REVEALER (page->overlay_revealer), TRUE);
 
         return G_SOURCE_REMOVE;
@@ -451,6 +459,7 @@ gr_cooking_page_class_init (GrCookingPageClass *klass)
         gtk_widget_class_bind_template_callback (widget_class, stop_cooking);
         gtk_widget_class_bind_template_callback (widget_class, motion_notify);
         gtk_widget_class_bind_template_callback (widget_class, close_notification);
+        gtk_widget_class_bind_template_callback (widget_class, on_child_revealed);
 }
 
 void
diff --git a/src/gr-cooking-page.ui b/src/gr-cooking-page.ui
index 5255789..31bb491 100644
--- a/src/gr-cooking-page.ui
+++ b/src/gr-cooking-page.ui
@@ -148,11 +148,11 @@
         </child>
         <child type="overlay">
           <object class="GtkRevealer" id="overlay_revealer">
-            <property name="visible">1</property>
             <property name="halign">center</property>
             <property name="valign">center</property>
             <property name="transition-type">crossfade</property>
             <property name="transition-duration">1000</property>
+            <signal name="notify::child-revealed" handler="on_child_revealed" swapped="yes"/>
             <child>
               <object class="GtkGrid" id="cooking_overlay">
                 <property name="visible">1</property>


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