From 53a30eaa12e44a2ee5da7c9bc9a23a8bfeb733dc Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Mon, 22 Jun 2020 12:48:42 -0400 Subject: [PATCH] entry completion: Make keynav work again Use gtk_widget_prepend_controller to supersede entry keynav while the popup is open. This fixes selecting completions with the keyboard - the Enter keypress was ending up triggering GtkText::activate instead of inserting the selected completion into the entry. --- gtk/gtkentrycompletion.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gtk/gtkentrycompletion.c b/gtk/gtkentrycompletion.c index 8fdc9d0739..d2f849a213 100644 --- a/gtk/gtkentrycompletion.c +++ b/gtk/gtkentrycompletion.c @@ -2338,7 +2338,7 @@ connect_completion_signals (GtkEntryCompletion *completion) gtk_event_controller_set_name (controller, "gtk-entry-completion"); g_signal_connect (controller, "key-pressed", G_CALLBACK (gtk_entry_completion_key_pressed), completion); - gtk_widget_add_controller (GTK_WIDGET (text), controller); + gtk_widget_prepend_controller (GTK_WIDGET (text), controller); controller = priv->entry_focus_controller = gtk_event_controller_focus_new (); gtk_event_controller_set_name (controller, "gtk-entry-completion"); g_signal_connect_swapped (controller, "leave", G_CALLBACK (text_focus_out), completion);