summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorCarlos Garnacho <carlosg@gnome.org>2018-06-26 15:29:54 +0200
committerCarlos Garnacho <carlosg@gnome.org>2018-07-30 13:14:12 +0200
commit0d7b4ecb14685680b84d39fbd6e3075e79e2546d (patch)
tree22e2d55f1dd01dc824cc05c1dd4fcb157e4fcabb
parent9a541d9b91dcb67b19eb67e3fbecd938b745514d (diff)
downloadgtk+-0d7b4ecb14685680b84d39fbd6e3075e79e2546d.tar.gz
gtkentry: Use keycontroller on GtkCellEditable implementation
-rw-r--r--gtk/gtkentry.c21
1 files changed, 9 insertions, 12 deletions
diff --git a/gtk/gtkentry.c b/gtk/gtkentry.c
index bbed89d601..634229978b 100644
--- a/gtk/gtkentry.c
+++ b/gtk/gtkentry.c
@@ -4412,18 +4412,13 @@ gtk_cell_editable_entry_activated (GtkEntry *entry, gpointer data)
}
static gboolean
-gtk_cell_editable_event (GtkEntry *entry,
- GdkEvent *event,
- gpointer data)
+gtk_cell_editable_entry_key_pressed (GtkEventControllerKey *key,
+ guint keyval,
+ guint keycode,
+ GdkModifierType modifiers,
+ GtkEntry *entry)
{
GtkEntryPrivate *priv = gtk_entry_get_instance_private (entry);
- guint 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)
{
@@ -4452,8 +4447,10 @@ gtk_entry_start_editing (GtkCellEditable *cell_editable,
{
g_signal_connect (cell_editable, "activate",
G_CALLBACK (gtk_cell_editable_entry_activated), NULL);
- g_signal_connect (cell_editable, "event",
- G_CALLBACK (gtk_cell_editable_event), NULL);
+ g_signal_connect (gtk_entry_get_key_controller (GTK_ENTRY (cell_editable)),
+ "key-pressed",
+ G_CALLBACK (gtk_cell_editable_entry_key_pressed),
+ cell_editable);
}
static void