diff options
author | Ernestas Kulik <ernestask@gnome.org> | 2018-05-21 11:17:58 +0300 |
---|---|---|
committer | Ernestas Kulik <ernestask@gnome.org> | 2018-05-28 13:13:52 +0300 |
commit | 7077841501963a1645336f47a0c734348c8bb80d (patch) | |
tree | 9d7a12a190476c678750b5b6483f0da7c1242bb5 | |
parent | 902ce37f577d668063fd51e4f40932de53af2441 (diff) | |
download | nautilus-7077841501963a1645336f47a0c734348c8bb80d.tar.gz |
rename-file-popover-controller: Stop using key-press-event
-rw-r--r-- | src/nautilus-rename-file-popover-controller.c | 33 |
1 files changed, 23 insertions, 10 deletions
diff --git a/src/nautilus-rename-file-popover-controller.c b/src/nautilus-rename-file-popover-controller.c index 8bbe05348..19808b2b7 100644 --- a/src/nautilus-rename-file-popover-controller.c +++ b/src/nautilus-rename-file-popover-controller.c @@ -233,22 +233,35 @@ name_entry_on_undo (GtkWidget *widget, } static gboolean -name_entry_on_key_pressed (GtkWidget *widget, - GdkEvent *event, - gpointer user_data) +name_entry_on_event (GtkWidget *widget, + GdkEvent *event, + gpointer user_data) { - GdkEventKey *key_event; NautilusRenameFilePopoverController *self; + guint keyval; + GdkModifierType state; + + if (gdk_event_get_event_type (event) != GDK_KEY_PRESS) + { + return GDK_EVENT_PROPAGATE; + } - key_event = (GdkEventKey *) event; self = NAUTILUS_RENAME_FILE_POPOVER_CONTROLLER (user_data); - if (key_event->keyval == GDK_KEY_F2) + if (G_UNLIKELY (!gdk_event_get_keyval (event, &keyval))) + { + g_return_val_if_reached (GDK_EVENT_PROPAGATE); + } + if (G_UNLIKELY (!gdk_event_get_state (event, &state))) + { + g_return_val_if_reached (GDK_EVENT_PROPAGATE); + } + + if (keyval == GDK_KEY_F2) { return name_entry_on_f2_pressed (widget, self); } - else if (key_event->keyval == GDK_KEY_z && - (key_event->state & GDK_CONTROL_MASK) != 0) + else if (keyval == GDK_KEY_z && (state & GDK_CONTROL_MASK) != 0) { return name_entry_on_undo (widget, self); } @@ -361,8 +374,8 @@ nautilus_rename_file_popover_controller_show_for_file (NautilusRenameFilePopov self); self->key_press_event_handler_id = g_signal_connect (self->name_entry, - "key-press-event", - G_CALLBACK (name_entry_on_key_pressed), + "event", + G_CALLBACK (name_entry_on_event), self); gtk_label_set_text (GTK_LABEL (self->name_label), |