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)
downloadefl-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.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 {
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);