summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErnestas Kulik <ernestask@gnome.org>2018-08-06 12:14:07 +0300
committerAntónio Fernandes <antoniojpfernandes@gmail.com>2021-12-22 01:38:47 +0000
commit58d68c25ad4d047e8ae1e3587dd35ba4e5f0b61e (patch)
tree6826ac250faf934c2a42d7ceff154ed962f92711
parent8cc9209e38aa55abfd75374abf6c0c13dbf3733f (diff)
downloadnautilus-58d68c25ad4d047e8ae1e3587dd35ba4e5f0b61e.tar.gz
rename-file-popover-controller: Use controller for key events
Rebased and ammended by António Fernandes <antoniof@gnome.org>
-rw-r--r--src/nautilus-rename-file-popover-controller.c39
1 files changed, 16 insertions, 23 deletions
diff --git a/src/nautilus-rename-file-popover-controller.c b/src/nautilus-rename-file-popover-controller.c
index 3d2390e29..b2491404b 100644
--- a/src/nautilus-rename-file-popover-controller.c
+++ b/src/nautilus-rename-file-popover-controller.c
@@ -44,6 +44,8 @@ struct _NautilusRenameFilePopoverController
gulong closed_handler_id;
gulong file_changed_handler_id;
gulong key_press_event_handler_id;
+
+ GtkEventController *key_controller;
};
G_DEFINE_TYPE (NautilusRenameFilePopoverController, nautilus_rename_file_popover_controller, NAUTILUS_TYPE_FILE_NAME_WIDGET_CONTROLLER)
@@ -231,30 +233,18 @@ name_entry_on_undo (GtkWidget *widget,
}
static gboolean
-name_entry_on_event (GtkWidget *widget,
- GdkEvent *event,
- gpointer user_data)
+on_event_controller_key_key_pressed (GtkEventControllerKey *controller,
+ guint keyval,
+ guint keycode,
+ GdkModifierType state,
+ gpointer user_data)
{
+ GtkWidget *widget;
NautilusRenameFilePopoverController *self;
- guint keyval;
- GdkModifierType state;
-
- if (gdk_event_get_event_type (event) != GDK_KEY_PRESS)
- {
- return GDK_EVENT_PROPAGATE;
- }
+ widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (controller));
self = NAUTILUS_RENAME_FILE_POPOVER_CONTROLLER (user_data);
- 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);
@@ -371,10 +361,11 @@ nautilus_rename_file_popover_controller_show_for_file (NautilusRenameFilePopov
G_CALLBACK (target_file_on_changed),
self);
- self->key_press_event_handler_id = g_signal_connect (self->name_entry,
- "event",
- G_CALLBACK (name_entry_on_event),
- self);
+ self->key_controller = gtk_event_controller_key_new (self->name_entry);
+ g_signal_connect (self->key_controller,
+ "key-pressed",
+ G_CALLBACK (on_event_controller_key_key_pressed),
+ self);
gtk_label_set_text (GTK_LABEL (self->title_label),
self->target_is_folder ? _("Rename Folder") :
@@ -435,6 +426,8 @@ nautilus_rename_file_popover_controller_finalize (GObject *object)
gtk_widget_destroy (self->rename_file_popover);
g_clear_object (&self->rename_file_popover);
+ g_clear_object (&self->key_controller);
+
G_OBJECT_CLASS (nautilus_rename_file_popover_controller_parent_class)->finalize (object);
}