[gnome-shell] widget: Only include visible actors in focus chain
- From: Florian Müllner <fmuellner src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-shell] widget: Only include visible actors in focus chain
- Date: Wed, 8 Feb 2017 13:50:57 +0000 (UTC)
commit a870a4d6de093e469d50dcbba81c4636f053c481
Author: Florian Müllner <fmuellner gnome org>
Date: Tue Feb 7 20:22:18 2017 +0100
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
src/st/st-widget.c | 14 +++++++++++++-
1 files changed, 13 insertions(+), 1 deletions(-)
---
diff --git a/src/st/st-widget.c b/src/st/st-widget.c
index e20c845..002249d 100644
--- a/src/st/st-widget.c
+++ b/src/st/st-widget.c
@@ -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);
}
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]