summaryrefslogtreecommitdiff
path: root/src/nautilus-rename-file-popover-controller.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/nautilus-rename-file-popover-controller.c')
-rw-r--r--src/nautilus-rename-file-popover-controller.c33
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),