From f720115f082f32960baf6c01a517eaa398f3ef4d Mon Sep 17 00:00:00 2001 From: Marcel Hollerbach Date: Thu, 19 Oct 2017 13:47:15 +0200 Subject: [PATCH] elm_widget: update parent instead of unregister for the case of parent change This means we maintain the focus state over a parent change --- src/lib/elementary/elm_widget.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index 66995c9a93..cc872e0c16 100644 --- a/src/lib/elementary/elm_widget.c +++ b/src/lib/elementary/elm_widget.c @@ -355,7 +355,6 @@ _elm_widget_focus_state_apply(Eo *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED, El if (//check if we have changed the manager (current_state.manager != configured_state->manager) || - (current_state.parent != configured_state->parent) || //check if we are already registered but in a different state (current_state.logical != configured_state->logical)) { @@ -364,6 +363,12 @@ _elm_widget_focus_state_apply(Eo *obj, Elm_Widget_Smart_Data *pd EINA_UNUSED, El registered = EINA_FALSE; } + //the parent may has changed + if (current_state.parent != configured_state->parent && registered) + { + return efl_ui_focus_manager_calc_update_parent(current_state.manager, obj, configured_state->parent); + } + if (!registered) { if (configured_state->logical)