summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorMarcel Hollerbach <marcel@osg.samsung.com>2017-11-13 14:15:04 +0100
committerMarcel Hollerbach <marcel@osg.samsung.com>2017-11-13 14:21:06 +0100
commit63ef60402f438895b7dfb7300530b199c2248240 (patch)
treebd778acc2a45e17a342d9f36cb3ec138c7d27d4e /src
parent6508b8849c0b4f8f8eae9ab57f1e4bcf4f01d87e (diff)
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
Diffstat (limited to 'src')
-rw-r--r--src/lib/elementary/efl_ui_win.c13
1 files changed, 12 insertions, 1 deletions
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)
1231 } 1231 }
1232 1232
1233 Evas_Object *focused = efl_ui_focus_manager_focus_get(man); 1233 Evas_Object *focused = efl_ui_focus_manager_focus_get(man);
1234 efl_ui_widget_on_focus_update(focused, NULL); 1234 efl_ui_focus_object_focus_set(focused, EINA_TRUE);
1235 } 1235 }
1236 1236
1237 evas_object_smart_callback_call(obj, SIG_FOCUS_IN, NULL); 1237 evas_object_smart_callback_call(obj, SIG_FOCUS_IN, NULL);
@@ -1280,6 +1280,17 @@ _elm_win_focus_out(Ecore_Evas *ee)
1280 efl_access_state_changed_signal_emit(obj, EFL_ACCESS_STATE_ACTIVE, EINA_FALSE); 1280 efl_access_state_changed_signal_emit(obj, EFL_ACCESS_STATE_ACTIVE, EINA_FALSE);
1281 } 1281 }
1282 1282
1283 if (sd->type != ELM_WIN_FAKE)
1284 {
1285 Efl_Ui_Focus_Manager *man = sd->obj;
1286 while(efl_ui_focus_manager_redirect_get(man))
1287 {
1288 man = efl_ui_focus_manager_redirect_get(man);
1289 }
1290
1291 Evas_Object *focused = efl_ui_focus_manager_focus_get(man);
1292 efl_ui_focus_object_focus_set(focused, EINA_FALSE);
1293 }
1283 /* do nothing */ 1294 /* do nothing */
1284 /* if (sd->img_obj) */ 1295 /* if (sd->img_obj) */
1285 /* { */ 1296 /* { */