summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErnestas Kulik <ernestask@gnome.org>2018-05-22 12:41:26 +0300
committerErnestas Kulik <ernestask@gnome.org>2018-05-28 13:13:56 +0300
commit8eb0b0d37842fe18d67731e3bdc136832b3242a1 (patch)
tree546bac7240d3fcfba8b79c70de51d2ce7204fe0e
parent2e62e2def6100f9022bbcf9af23948850f08d4aa (diff)
downloadnautilus-8eb0b0d37842fe18d67731e3bdc136832b3242a1.tar.gz
files-view: Handle key presses in generic event signal handler
-rw-r--r--src/nautilus-files-view.c22
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;