summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel-hollerbach@t-online.de>2017-07-18 16:16:18 +0200
committerMarcel Hollerbach <marcel-hollerbach@t-online.de>2017-07-18 17:51:38 +0200
commit1c9762d8cae61935ac69303b1b8814cd0a28e2ef (patch)
treece7454b805d639732456973e7adfbea245c3c39c
parent92bad54778a036d14a16adb1197ce5b0f45ea0cb (diff)
downloadefl-1c9762d8cae61935ac69303b1b8814cd0a28e2ef.tar.gz
elm_widget: do not register disabled logical nodes
this reduces the load of useless logical trees that ref T5753
-rw-r--r--src/lib/elementary/elm_widget.c14
1 files changed, 13 insertions, 1 deletions
diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c
index c14e711fb5..4e9a3a72f0 100644
--- a/src/lib/elementary/elm_widget.c
+++ b/src/lib/elementary/elm_widget.c
@@ -315,7 +315,19 @@ _focus_state_eval(Eo *obj, Elm_Widget_Smart_Data *pd)
}
if (!should && pd->logical.child_count > 0)
- should = EINA_TRUE;
+ {
+ should = EINA_TRUE;
+
+ if (_tree_unfocusable(obj))
+ should = EINA_FALSE;
+
+ if (_tree_disabled(obj))
+ should = EINA_FALSE;
+
+ if (!evas_object_visible_get(obj))
+ should = EINA_FALSE;
+
+ }
if ( //check if we have changed the manager
(pd->focus.manager != manager && should) ||