summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel@osg.samsung.com>2018-04-11 15:35:57 +0200
committerMarcel Hollerbach <marcel@osg.samsung.com>2018-04-11 17:16:34 +0200
commit253430ab76348d99c81e3b753b6a32817bdb6666 (patch)
tree515050fe562990c7decf70258f8742996075bbcf
parentb5c9742cb739269659c2c0e8b94acd2212043a27 (diff)
efl_ui_focus_manager_calc: call next after requesting a subchild
requesting subchild for subchild is not a good idea, as it really only fetches for a subchild, and never calls next and escapes the children of the passed node. fix T6793
-rw-r--r--src/lib/elementary/efl_ui_focus_manager_calc.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c b/src/lib/elementary/efl_ui_focus_manager_calc.c
index f6357c3343..9802c9f268 100644
--- a/src/lib/elementary/efl_ui_focus_manager_calc.c
+++ b/src/lib/elementary/efl_ui_focus_manager_calc.c
@@ -82,6 +82,7 @@ typedef struct {
82 82
83static Node* _request_subchild(Node *node); 83static Node* _request_subchild(Node *node);
84static void dirty_add(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd, Node *dirty); 84static void dirty_add(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd, Node *dirty);
85static Node* _next(Node *node);
85 86
86static void 87static void
87_manager_in_chain_set(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd) 88_manager_in_chain_set(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd)
@@ -1012,9 +1013,10 @@ _efl_ui_focus_manager_calc_update_children(Eo *obj EINA_UNUSED, Efl_Ui_Focus_Man
1012static inline Node* 1013static inline Node*
1013_request_subchild_except(Node *n, Node *except) 1014_request_subchild_except(Node *n, Node *except)
1014{ 1015{
1016 n = _request_subchild(n);
1015 do 1017 do
1016 { 1018 {
1017 n = _request_subchild(n); 1019 n = _next(n);
1018 } 1020 }
1019 while (n == except); 1021 while (n == except);
1020 1022