diff options
author | Carlos Garnacho <carlosg@gnome.org> | 2018-06-07 14:09:01 +0200 |
---|---|---|
committer | Carlos Garnacho <carlosg@gnome.org> | 2018-06-21 12:50:57 +0200 |
commit | a5414bc404b2ab4d73d3b544b60e95418633846f (patch) | |
tree | 7d6e3922d60edaa2be7c9880898ea27746a67402 /gtk/gtkpopover.c | |
parent | 1d97b5fd3ccb351133ed4d36f3df8cdd48c45dd2 (diff) | |
download | gtk+-a5414bc404b2ab4d73d3b544b60e95418633846f.tar.gz |
gtkpopover: Fix key navigation
This has been broken since we switched key event delivery to follow
the same semantics than pointer/touch. There, GTK+ grabs will influence
the topmost widget during event delivery, rendering the toplevel
unable to handle key navigation. The toplevel must handle those key
events in an explicit manner then.
We don't render the keyboard focus rectangle yet, but I assume that's
something else.
Diffstat (limited to 'gtk/gtkpopover.c')
-rw-r--r-- | gtk/gtkpopover.c | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/gtk/gtkpopover.c b/gtk/gtkpopover.c index a520f235ed..3263f06775 100644 --- a/gtk/gtkpopover.c +++ b/gtk/gtkpopover.c @@ -293,7 +293,13 @@ key_controller_key_pressed (GtkEventControllerKey *key, focus = gtk_window_get_focus (GTK_WINDOW (toplevel)); if (focus && gtk_widget_is_ancestor (focus, GTK_WIDGET (popover))) - return gtk_event_controller_key_forward (key, focus); + { + if (gtk_event_controller_key_forward (key, focus)) + return TRUE; + } + + /* Piggyback on the toplevel to have it handle key navigation */ + return gtk_event_controller_key_forward (key, toplevel); } } |