[gnome-shell] shell/stack: Ignore hidden children for focus navigation



commit 120b907c3371921d67828ee230e4bcc2f1b26ebb
Author: Florian Müllner <fmuellner gnome org>
Date:   Wed Feb 19 17:30:15 2020 +0100

    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 7fc7609252..7f4cb5564b 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


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]