diff options
author | Ernestas Kulik <ernestask@gnome.org> | 2018-05-22 12:41:26 +0300 |
---|---|---|
committer | Ernestas Kulik <ernestask@gnome.org> | 2018-05-28 13:13:56 +0300 |
commit | 8eb0b0d37842fe18d67731e3bdc136832b3242a1 (patch) | |
tree | 546bac7240d3fcfba8b79c70de51d2ce7204fe0e | |
parent | 2e62e2def6100f9022bbcf9af23948850f08d4aa (diff) | |
download | nautilus-8eb0b0d37842fe18d67731e3bdc136832b3242a1.tar.gz |
files-view: Handle key presses in generic event signal handler
-rw-r--r-- | src/nautilus-files-view.c | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c index ea99020ff..866c9bfe6 100644 --- a/src/nautilus-files-view.c +++ b/src/nautilus-files-view.c @@ -9152,19 +9152,29 @@ nautilus_files_view_parent_set (GtkWidget *widget, } static gboolean -nautilus_files_view_key_press_event (GtkWidget *widget, - GdkEventKey *event) +nautilus_files_view_event (GtkWidget *widget, + GdkEvent *event) { NautilusFilesView *view; NautilusFilesViewPrivate *priv; - gint i; + guint keyval; + + if (gdk_event_get_event_type (event) != GDK_KEY_PRESS) + { + return GDK_EVENT_PROPAGATE; + } view = NAUTILUS_FILES_VIEW (widget); priv = nautilus_files_view_get_instance_private (view); - for (i = 0; i < G_N_ELEMENTS (extra_view_keybindings); i++) + if (G_UNLIKELY (!gdk_event_get_keyval (event, &keyval))) + { + g_return_val_if_reached (GDK_EVENT_PROPAGATE); + } + + for (gint i = 0; i < G_N_ELEMENTS (extra_view_keybindings); i++) { - if (extra_view_keybindings[i].keyval == event->keyval) + if (extra_view_keybindings[i].keyval == keyval) { GAction *action; @@ -9334,7 +9344,7 @@ nautilus_files_view_class_init (NautilusFilesViewClass *klass) oclass->set_property = nautilus_files_view_set_property; widget_class->destroy = nautilus_files_view_destroy; - widget_class->key_press_event = nautilus_files_view_key_press_event; + widget_class->event = nautilus_files_view_event; widget_class->parent_set = nautilus_files_view_parent_set; widget_class->grab_focus = nautilus_files_view_grab_focus; |