bu5hm4n pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=63ef60402f438895b7dfb7300530b199c2248240

commit 63ef60402f438895b7dfb7300530b199c2248240
Author: Marcel Hollerbach <[email protected]>
Date:   Mon Nov 13 14:15:04 2017 +0100

    efl_ui_win: unfocus and focus again the most upper widget
    
    if we unfocus a window we should unfocus also the current focused
    widget.
    
    fix T6297
---
 src/lib/elementary/efl_ui_win.c | 13 ++++++++++++-
 1 file changed, 12 insertions(+), 1 deletion(-)

diff --git a/src/lib/elementary/efl_ui_win.c b/src/lib/elementary/efl_ui_win.c
index 3d90f0a1f3..812e1645d7 100644
--- a/src/lib/elementary/efl_ui_win.c
+++ b/src/lib/elementary/efl_ui_win.c
@@ -1231,7 +1231,7 @@ _elm_win_focus_in(Ecore_Evas *ee)
           }
 
         Evas_Object *focused = efl_ui_focus_manager_focus_get(man);
-        efl_ui_widget_on_focus_update(focused, NULL);
+        efl_ui_focus_object_focus_set(focused, EINA_TRUE);
      }
 
    evas_object_smart_callback_call(obj, SIG_FOCUS_IN, NULL);
@@ -1280,6 +1280,17 @@ _elm_win_focus_out(Ecore_Evas *ee)
         efl_access_state_changed_signal_emit(obj, EFL_ACCESS_STATE_ACTIVE, 
EINA_FALSE);
      }
 
+   if (sd->type != ELM_WIN_FAKE)
+     {
+        Efl_Ui_Focus_Manager *man = sd->obj;
+        while(efl_ui_focus_manager_redirect_get(man))
+          {
+             man = efl_ui_focus_manager_redirect_get(man);
+          }
+
+        Evas_Object *focused = efl_ui_focus_manager_focus_get(man);
+        efl_ui_focus_object_focus_set(focused, EINA_FALSE);
+     }
    /* do nothing */
    /* if (sd->img_obj) */
    /*   { */

-- 


Reply via email to