bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=688e7001c158af51bb92e586f701a8833cc98b46

commit 688e7001c158af51bb92e586f701a8833cc98b46
Author: Marcel Hollerbach <[email protected]>
Date:   Tue Nov 21 16:15:02 2017 +0100

    efl_ui_focus_manager_calc: remove a logical item that caused a redirect
    
    so we dont try to focus a logical item.
---
 src/lib/elementary/efl_ui_focus_manager_calc.c | 16 +++++++++++-----
 1 file changed, 11 insertions(+), 5 deletions(-)

diff --git a/src/lib/elementary/efl_ui_focus_manager_calc.c 
b/src/lib/elementary/efl_ui_focus_manager_calc.c
index d6f7bfac82..c5e1d496f0 100644
--- a/src/lib/elementary/efl_ui_focus_manager_calc.c
+++ b/src/lib/elementary/efl_ui_focus_manager_calc.c
@@ -895,15 +895,21 @@ 
_efl_ui_focus_manager_calc_efl_ui_focus_manager_redirect_set(Eo *obj, Efl_Ui_Foc
 
    efl_ui_focus_manager_reset_history(old_manager);
 
+   //we might have saved a logical element at the top, remove that if there is 
one
+   {
+      Node *n = NULL;
+
+      n = eina_list_last_data_get(pd->focus_stack);
+
+      if (n && n->type == NODE_TYPE_ONLY_LOGICAL && n->redirect_manager == 
old_manager)
+        pd->focus_stack = eina_list_remove(pd->focus_stack, n);
+   }
+
    //adjust focus property of the most upper element
    {
       Node *n = NULL;
-      Eina_List *last;
-      /* focus the upper most element */
-      last = eina_list_last(pd->focus_stack);
 
-      if (last)
-        n = eina_list_data_get(last);
+      n = eina_list_last_data_get(pd->focus_stack);
 
       if (n)
         {

-- 


Reply via email to