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 *
|
static GList *
|
||||||
st_widget_real_get_focus_chain (StWidget *widget)
|
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