Propagate key events when the location entry is focused

Fixes https://gitlab.gnome.org/GNOME/gtk/-/issues/4880
This commit is contained in:
Luca Bacci 2022-04-29 13:19:01 +02:00
parent b3f04413b4
commit 1af7cde1a8

View File

@ -7740,6 +7740,14 @@ captured_key (GtkEventControllerKey *controller,
if (keyval == GDK_KEY_slash) if (keyval == GDK_KEY_slash)
return GDK_EVENT_PROPAGATE; return GDK_EVENT_PROPAGATE;
if (impl->location_entry)
{
GtkWidget *focus = gtk_root_get_focus (gtk_widget_get_root (GTK_WIDGET (impl)));
if (focus && gtk_widget_is_ancestor (focus, impl->location_entry))
return GDK_EVENT_PROPAGATE;
}
handled = gtk_event_controller_key_forward (controller, GTK_WIDGET (impl->search_entry)); handled = gtk_event_controller_key_forward (controller, GTK_WIDGET (impl->search_entry));
if (handled == GDK_EVENT_STOP) if (handled == GDK_EVENT_STOP)
operation_mode_set (impl, OPERATION_MODE_SEARCH); operation_mode_set (impl, OPERATION_MODE_SEARCH);