diff options
author | Marcel Hollerbach <marcel@osg.samsung.com> | 2018-04-11 15:35:57 +0200 |
---|---|---|
committer | Marcel Hollerbach <marcel@osg.samsung.com> | 2018-04-11 17:16:34 +0200 |
commit | 253430ab76348d99c81e3b753b6a32817bdb6666 (patch) | |
tree | 515050fe562990c7decf70258f8742996075bbcf | |
parent | b5c9742cb739269659c2c0e8b94acd2212043a27 (diff) | |
download | efl-253430ab76348d99c81e3b753b6a32817bdb6666.tar.gz |
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.c | 4 |
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 { static Node* _request_subchild(Node *node); static void dirty_add(Eo *obj, Efl_Ui_Focus_Manager_Calc_Data *pd, Node *dirty); +static Node* _next(Node *node); static void _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 static inline Node* _request_subchild_except(Node *n, Node *except) { + n = _request_subchild(n); do { - n = _request_subchild(n); + n = _next(n); } while (n == except); |