From 63ef60402f438895b7dfb7300530b199c2248240 Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Mon, 13 Nov 2017 14:15:04 +0100 Subject: [PATCH] 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) */ /* { */