[glade] Bug 759395 - Ignore ESC key press from popovers



commit 47c50da13920ddd9ceb7f627e6106e840693da39
Author: Tristan Van Berkom <tristan upstairslabs com>
Date:   Thu Jan 28 16:48:53 2016 +0100

    Bug 759395 - Ignore ESC key press from popovers

 plugins/gtk+/glade-gtk-popover.c |   22 ++++++++++++++++++++++
 plugins/gtk+/gtk+.xml.in         |    1 +
 2 files changed, 23 insertions(+), 0 deletions(-)
---
diff --git a/plugins/gtk+/glade-gtk-popover.c b/plugins/gtk+/glade-gtk-popover.c
index b60e6ff..82f0056 100644
--- a/plugins/gtk+/glade-gtk-popover.c
+++ b/plugins/gtk+/glade-gtk-popover.c
@@ -56,3 +56,25 @@ glade_gtk_popover_create_editable (GladeWidgetAdaptor * adaptor,
     return GWA_GET_CLASS (GTK_TYPE_CONTAINER)->create_editable (adaptor, type);
 }
 
+static gint
+popover_key_press (GtkWidget   *popover,
+                  GdkEventKey *event,
+                  gpointer     user_data)
+{
+  if (event->keyval == GDK_KEY_Escape)
+    return TRUE;
+
+  return FALSE;
+}
+                  
+void
+glade_gtk_popover_post_create (GladeWidgetAdaptor * adaptor,
+                              GObject *popover, GladeCreateReason reason)
+{
+  /* Ignore some events causing the popover to disappear from the workspace
+   */
+  g_signal_connect (popover, "key-press-event",
+                   G_CALLBACK (popover_key_press), NULL);
+
+  GWA_GET_CLASS (GTK_TYPE_CONTAINER)->post_create (adaptor, popover, reason);
+}
diff --git a/plugins/gtk+/gtk+.xml.in b/plugins/gtk+/gtk+.xml.in
index 06b6198..e6e53b9 100644
--- a/plugins/gtk+/gtk+.xml.in
+++ b/plugins/gtk+/gtk+.xml.in
@@ -3464,6 +3464,7 @@
       <glade-widget-class name="GtkPopover" generic-name="popover" _title="Popover" toplevel="True" 
since="3.12">
         <constructor-function>glade_gtk_popover_constructor</constructor-function>
         <create-editable-function>glade_gtk_popover_create_editable</create-editable-function>
+        <post-create-function>glade_gtk_popover_post_create</post-create-function>
         <properties>
           <property id="visible" default="False"/>
           <property id="relative-to" ignore="True" custom-layout="True"/>


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