From 15043b9d78f8057db6cf354d721cd2a0714474e2 Mon Sep 17 00:00:00 2001 From: Derek Foreman Date: Mon, 19 Nov 2018 15:30:25 -0600 Subject: [PATCH] elm: speed up _eval_registration_candidate combining _tree_unfocusable and _tree_disabled into a single function reduces eo overhead. This saves a few ms at startup in elementary_test. Differential Revision: https://phab.enlightenment.org/D7308 Signed-off-by: Derek Foreman --- src/lib/elementary/efl_ui_widget.c | 20 +++----------------- 1 file changed, 3 insertions(+), 17 deletions(-) diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index b9cdaf1..0e4db5a 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -404,20 +404,6 @@ _efl_ui_widget_focus_highlight_style_get(const Eo *obj, Elm_Widget_Smart_Data *s } static Eina_Bool -_tree_unfocusable(Eo *obj) -{ - Efl_Ui_Widget *wid = obj; - - do { - ELM_WIDGET_DATA_GET(wid, wid_pd); - - if (wid_pd->tree_unfocusable) return EINA_TRUE; - } while((wid = elm_widget_parent_widget_get(wid))); - - return EINA_FALSE; -} - -static Eina_Bool _tree_custom_chain_missing(Eo *obj) { Efl_Ui_Widget *wid = obj; @@ -444,7 +430,7 @@ _tree_custom_chain_missing(Eo *obj) } static Eina_Bool -_tree_disabled(Eo *obj) +_tree_disabled_or_unfocusable(Eo *obj) { Efl_Ui_Widget *wid = obj; @@ -452,6 +438,7 @@ _tree_disabled(Eo *obj) ELM_WIDGET_DATA_GET(wid, wid_pd); if (wid_pd->disabled) return EINA_TRUE; + if (wid_pd->tree_unfocusable) return EINA_TRUE; } while((wid = elm_widget_parent_widget_get(wid))); return EINA_FALSE; @@ -564,8 +551,7 @@ _eval_registration_candidate(Eo *obj, Elm_Widget_Smart_Data *pd, Eina_Bool *shou //can focus can be overridden by the following properties if (!efl_isa(elm_widget_top_get(obj), EFL_UI_WIN_CLASS) || (!pd->parent_obj) || - (_tree_unfocusable(obj)) || - (_tree_disabled(obj)) || + (_tree_disabled_or_unfocusable(obj)) || (_tree_custom_chain_missing(obj)) || (!evas_object_visible_get(obj))) return; -- 2.7.4