[recipes] window: Add a button press handler



commit b28c1dc3504a251567e659f1823529c087c578f4
Author: Matthias Clasen <mclasen redhat com>
Date:   Mon Jan 23 18:39:13 2017 +0300

    window: Add a button press handler
    
    This send button presses to the cooking view.

 src/gr-window.c  |   17 +++++++++++++++++
 src/gr-window.ui |    1 +
 2 files changed, 18 insertions(+), 0 deletions(-)
---
diff --git a/src/gr-window.c b/src/gr-window.c
index 5c5b18d..2ecc70a 100644
--- a/src/gr-window.c
+++ b/src/gr-window.c
@@ -334,6 +334,22 @@ window_keypress_handler (GtkWidget *widget,
         return gr_query_editor_handle_event (GR_QUERY_EDITOR (window->search_bar), event);
 }
 
+static gboolean
+window_buttonpress_handler (GtkWidget *widget,
+                            GdkEvent  *event,
+                            gpointer   data)
+{
+        GrWindow *window = GR_WINDOW (widget);
+        const char *visible;
+
+        visible = gtk_stack_get_visible_child_name (GTK_STACK (window->main_stack));
+
+        if (strcmp (visible, "cooking") == 0)
+          return gr_cooking_page_handle_event (GR_COOKING_PAGE (window->cooking_page), event);
+
+        return GDK_EVENT_PROPAGATE;
+}
+
 static void
 window_mapped_handler (GtkWidget *widget)
 {
@@ -527,6 +543,7 @@ gr_window_class_init (GrWindowClass *klass)
         gtk_widget_class_bind_template_callback (widget_class, stop_search);
         gtk_widget_class_bind_template_callback (widget_class, search_mode_changed);
         gtk_widget_class_bind_template_callback (widget_class, window_keypress_handler);
+        gtk_widget_class_bind_template_callback (widget_class, window_buttonpress_handler);
         gtk_widget_class_bind_template_callback (widget_class, window_mapped_handler);
         gtk_widget_class_bind_template_callback (widget_class, do_undo);
         gtk_widget_class_bind_template_callback (widget_class, close_undo);
diff --git a/src/gr-window.ui b/src/gr-window.ui
index 43d4dfd..e69f7e5 100644
--- a/src/gr-window.ui
+++ b/src/gr-window.ui
@@ -4,6 +4,7 @@
   <template class="GrWindow" parent="GtkApplicationWindow">
     <property name="resizable">1</property>
     <signal name="key-press-event" handler="window_keypress_handler" after="yes"/>
+    <signal name="button-press-event" handler="window_buttonpress_handler" after="yes"/>
     <signal name="map" handler="window_mapped_handler" after="yes"/>
     <child type="titlebar">
       <object class="GtkHeaderBar" id="header">


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