widget: Only include visible actors in focus chain
It isn't useful to move the keyboard focus to a hidden actor, so only include visible actors in the focus chain - this is in fact the documented behavior of st_widget_get_focus_chain(), so having the default implementation return all children has always been unexpected. https://bugzilla.gnome.org/show_bug.cgi?id=778158
This commit is contained in:
parent
e6e786a19c
commit
a870a4d6de
@ -821,7 +821,19 @@ st_widget_get_paint_volume (ClutterActor *self,
|
||||
static GList *
|
||||
st_widget_real_get_focus_chain (StWidget *widget)
|
||||
{
|
||||
return clutter_actor_get_children (CLUTTER_ACTOR (widget));
|
||||
GList *children, *l, *visible = NULL;
|
||||
|
||||
children = clutter_actor_get_children (CLUTTER_ACTOR (widget));
|
||||
|
||||
for (l = children; l; l = l->next)
|
||||
{
|
||||
if (clutter_actor_is_visible (CLUTTER_ACTOR (l->data)))
|
||||
visible = g_list_prepend (visible, l->data);
|
||||
}
|
||||
|
||||
g_list_free (children);
|
||||
|
||||
return g_list_reverse (visible);
|
||||
}
|
||||
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user