summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorErnestas Kulik <ernestask@gnome.org>2018-08-10 20:16:14 +0300
committerErnestas Kulik <ekulik@redhat.com>2019-06-29 14:33:41 +0200
commite26b641b71d5ea5857266f28411573fc21c6cf21 (patch)
tree72c2a11a4b25548508068b8b1605be9d6c654141
parent4e0ec1555d6ba882002bdef18f0d2c26de6a68d3 (diff)
downloadnautilus-e26b641b71d5ea5857266f28411573fc21c6cf21.tar.gz
files-view: Replace GtkWidget::event handler with key controller
-rw-r--r--src/nautilus-files-view.c31
1 files changed, 16 insertions, 15 deletions
diff --git a/src/nautilus-files-view.c b/src/nautilus-files-view.c
index 3ac4ede0b..7be255da0 100644
--- a/src/nautilus-files-view.c
+++ b/src/nautilus-files-view.c
@@ -9105,27 +9105,21 @@ on_parent_changed (GObject *object,
}
static gboolean
-nautilus_files_view_event (GtkWidget *widget,
- GdkEvent *event)
+nautilus_files_view_key_pressed (GtkEventControllerKey *controller,
+ unsigned int keyval,
+ unsigned int keycode,
+ GdkModifierType state,
+ gpointer user_data)
{
+ GtkWidget *widget;
NautilusFilesView *view;
NautilusFilesViewPrivate *priv;
- guint keyval;
-
- if (gdk_event_get_event_type (event) != GDK_KEY_PRESS)
- {
- return GDK_EVENT_PROPAGATE;
- }
+ widget = gtk_event_controller_get_widget (GTK_EVENT_CONTROLLER (controller));
view = NAUTILUS_FILES_VIEW (widget);
priv = nautilus_files_view_get_instance_private (view);
- 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++)
+ for (size_t i = 0; i < G_N_ELEMENTS (extra_view_keybindings); i++)
{
if (extra_view_keybindings[i].keyval == keyval)
{
@@ -9301,7 +9295,6 @@ nautilus_files_view_class_init (NautilusFilesViewClass *klass)
oclass->set_property = nautilus_files_view_set_property;
widget_class->destroy = nautilus_files_view_destroy;
- widget_class->event = nautilus_files_view_event;
widget_class->grab_focus = nautilus_files_view_grab_focus;
@@ -9505,6 +9498,14 @@ nautilus_files_view_init (NautilusFilesView *view)
G_CALLBACK (on_event_controller_scroll_scroll),
view);
+ controller = gtk_event_controller_key_new ();
+
+ gtk_widget_add_controller (GTK_WIDGET (view), controller);
+
+ g_signal_connect (controller, "key-pressed",
+ G_CALLBACK (nautilus_files_view_key_pressed), NULL);
+ gtk_event_controller_set_propagation_phase (controller, GTK_PHASE_CAPTURE);
+
g_signal_connect_swapped (priv->scrolled_window,
"popup-menu",
G_CALLBACK (popup_menu_callback),