From: Marcel Hollerbach Date: Thu, 19 Oct 2017 11:47:15 +0000 (+0200) Subject: elm_widget: update parent instead of unregister for the case of parent X-Git-Tag: submit/sandbox/upgrade/efl120/20180319.053334~2138 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=f720115f082f32960baf6c01a517eaa398f3ef4d;p=platform%2Fupstream%2Fefl.git elm_widget: update parent instead of unregister for the case of parent change This means we maintain the focus state over a parent change --- diff --git a/src/lib/elementary/elm_widget.c b/src/lib/elementary/elm_widget.c index 66995c9..cc872e0 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)