diff options
author | Derek Foreman <derek.foreman.samsung@gmail.com> | 2018-11-19 15:30:25 -0600 |
---|---|---|
committer | Marcel Hollerbach <mail@marcel-hollerbach.de> | 2018-11-22 16:09:38 +0100 |
commit | a4e434308202d751d5f04b71e3968e40a3911219 (patch) | |
tree | 8c0949f4562cbf0a6fb137310d23a1900fe3fe2a | |
parent | 390871832d34eeeccb138ec8b6d3bf8f4a65f832 (diff) | |
download | efl-a4e434308202d751d5f04b71e3968e40a3911219.tar.gz |
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 <derek.foreman.samsung@gmail.com>
-rw-r--r-- | src/lib/elementary/efl_ui_widget.c | 20 |
1 files changed, 3 insertions, 17 deletions
diff --git a/src/lib/elementary/efl_ui_widget.c b/src/lib/elementary/efl_ui_widget.c index 5877facd7b..87b805aba9 100644 --- a/src/lib/elementary/efl_ui_widget.c +++ b/src/lib/elementary/efl_ui_widget.c @@ -338,20 +338,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; @@ -378,7 +364,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; @@ -386,6 +372,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; @@ -498,8 +485,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; |