From: Derek Foreman Date: Mon, 19 Nov 2018 21:30:25 +0000 (-0600) Subject: elm: speed up _eval_registration_candidate X-Git-Tag: submit/tizen/20181205.064917~118 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=15043b9d78f8057db6cf354d721cd2a0714474e2;p=platform%2Fupstream%2Fefl.git 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 --- 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;