From 120b907c3371921d67828ee230e4bcc2f1b26ebb Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Florian=20M=C3=BCllner?= Date: Wed, 19 Feb 2020 17:30:15 +0100 Subject: [PATCH] shell/stack: Ignore hidden children for focus navigation ShellStack implements custom focus navigation, and will only ever navigate into its top-most child. That kind of makes sense as long as that child is actually visible, but not when it is hidden. Descend into the stack to look for a focusable child instead. https://gitlab.gnome.org/GNOME/gnome-shell/issues/2210 --- src/shell-stack.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/src/shell-stack.c b/src/shell-stack.c index 7fc760925..7f4cb5564 100644 --- a/src/shell-stack.c +++ b/src/shell-stack.c @@ -170,6 +170,8 @@ shell_stack_navigate_focus (StWidget *widget, } top_actor = clutter_actor_get_last_child (CLUTTER_ACTOR (widget)); + while (top_actor && !clutter_actor_is_visible (top_actor)) + top_actor = clutter_actor_get_previous_sibling (top_actor); if (ST_IS_WIDGET (top_actor)) return st_widget_navigate_focus (ST_WIDGET (top_actor), from, direction, FALSE); else