[gtk+/wip/matthiasc/kill-key-events2: 45/48] combo box: Stop using ::key-press-event



commit ec76862d0095dc4b8de1bc46ee55f01a884e55ef
Author: Matthias Clasen <mclasen redhat com>
Date:   Wed Feb 7 19:36:48 2018 -0500

    combo box: Stop using ::key-press-event
    
    Switch to using ::event.

 gtk/gtkcombobox.c     |   35 +++++++++++++++++++----------------
 gtk/ui/gtkcombobox.ui |    2 +-
 2 files changed, 20 insertions(+), 17 deletions(-)
---
diff --git a/gtk/gtkcombobox.c b/gtk/gtkcombobox.c
index 68776dd..5289d01 100644
--- a/gtk/gtkcombobox.c
+++ b/gtk/gtkcombobox.c
@@ -280,8 +280,8 @@ static void     gtk_combo_box_menu_activate        (GtkWidget        *menu,
                                                     const gchar      *path,
                                                     GtkComboBox      *combo_box);
 static void     gtk_combo_box_update_sensitivity   (GtkComboBox      *combo_box);
-static gboolean gtk_combo_box_menu_key_press       (GtkWidget        *widget,
-                                                    GdkEventKey      *event,
+static gboolean gtk_combo_box_menu_event           (GtkWidget        *widget,
+                                                    GdkEvent         *event,
                                                     gpointer          data);
 static void     gtk_combo_box_menu_popup           (GtkComboBox      *combo_box);
 
@@ -849,7 +849,7 @@ gtk_combo_box_class_init (GtkComboBoxClass *klass)
   gtk_widget_class_bind_template_child_internal_private (widget_class, GtkComboBox, popup_widget);
   gtk_widget_class_bind_template_callback (widget_class, gtk_combo_box_button_toggled);
   gtk_widget_class_bind_template_callback (widget_class, gtk_combo_box_menu_activate);
-  gtk_widget_class_bind_template_callback (widget_class, gtk_combo_box_menu_key_press);
+  gtk_widget_class_bind_template_callback (widget_class, gtk_combo_box_menu_event);
   gtk_widget_class_bind_template_callback (widget_class, gtk_combo_box_menu_show);
   gtk_widget_class_bind_template_callback (widget_class, gtk_combo_box_menu_hide);
 
@@ -1940,18 +1940,18 @@ gtk_combo_box_model_row_changed (GtkTreeModel     *model,
 }
 
 static gboolean
-gtk_combo_box_menu_key_press (GtkWidget   *widget,
-                              GdkEventKey *event,
-                              gpointer     data)
+gtk_combo_box_menu_event (GtkWidget *widget,
+                          GdkEvent  *event,
+                          gpointer   data)
 {
   GtkComboBox *combo_box = GTK_COMBO_BOX (data);
 
-  if (!gtk_bindings_activate_event (G_OBJECT (widget), event))
+  if (!gtk_bindings_activate_event (G_OBJECT (widget), (GdkEventKey *)event))
     {
       /* The menu hasn't managed the
        * event, forward it to the combobox
        */
-      gtk_bindings_activate_event (G_OBJECT (combo_box), event);
+      gtk_bindings_activate_event (G_OBJECT (combo_box), (GdkEventKey *)event);
     }
 
   return TRUE;
@@ -2741,14 +2741,17 @@ gtk_combo_box_dispose (GObject* object)
 }
 
 static gboolean
-gtk_cell_editable_key_press (GtkWidget   *widget,
-                             GdkEventKey *event,
-                             gpointer     data)
+gtk_cell_editable_event (GtkWidget *widget,
+                         GdkEvent  *event,
+                         gpointer   data)
 {
   GtkComboBox *combo_box = GTK_COMBO_BOX (data);
   guint keyval;
 
-  if (!gdk_event_get_keyval ((GdkEvent *) event, &keyval))
+  if (gdk_event_get_event_type (event) != GDK_KEY_PRESS)
+    return GDK_EVENT_PROPAGATE;
+
+  if (!gdk_event_get_keyval (event, &keyval))
     return GDK_EVENT_PROPAGATE;
 
   if (keyval == GDK_KEY_Escape)
@@ -2786,8 +2789,8 @@ gtk_combo_box_start_editing (GtkCellEditable *cell_editable,
 
   if (priv->cell_view)
     {
-      g_signal_connect_object (priv->button, "key-press-event",
-                               G_CALLBACK (gtk_cell_editable_key_press),
+      g_signal_connect_object (priv->button, "event",
+                               G_CALLBACK (gtk_cell_editable_event),
                                cell_editable, 0);
 
       gtk_widget_grab_focus (priv->button);
@@ -2796,8 +2799,8 @@ gtk_combo_box_start_editing (GtkCellEditable *cell_editable,
     {
       child = gtk_bin_get_child (GTK_BIN (combo_box));
 
-      g_signal_connect_object (child, "key-press-event",
-                               G_CALLBACK (gtk_cell_editable_key_press),
+      g_signal_connect_object (child, "event",
+                               G_CALLBACK (gtk_cell_editable_event),
                                cell_editable, 0);
 
       gtk_widget_grab_focus (child);
diff --git a/gtk/ui/gtkcombobox.ui b/gtk/ui/gtkcombobox.ui
index d93c587..ef2d29c 100644
--- a/gtk/ui/gtkcombobox.ui
+++ b/gtk/ui/gtkcombobox.ui
@@ -34,7 +34,7 @@
   <object class="GtkTreeMenu" id="popup_widget">
     <property name="cell-area">area</property>
     <signal name="menu-activate" handler="gtk_combo_box_menu_activate" swapped="no"/>
-    <signal name="key-press-event" handler="gtk_combo_box_menu_key_press" swapped="no"/>
+    <signal name="event" handler="gtk_combo_box_menu_event" swapped="no"/>
     <signal name="show" handler="gtk_combo_box_menu_show" swapped="no"/>
     <signal name="hide" handler="gtk_combo_box_menu_hide" swapped="no"/>
   </object>


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