jaehyun pushed a commit to branch master. http://git.enlightenment.org/core/efl.git/commit/?id=a7b501d94764f3cd183fcfb92fe201ab8f954dc2
commit a7b501d94764f3cd183fcfb92fe201ab8f954dc2 Author: Youngbok Shin <[email protected]> Date: Wed Mar 8 14:15:56 2017 +0900 naviframe: keep unfocusable state of item before finishing item push/pop If item pop was started without focus at a naviframe object and the naviframe object got focus before finising item pop, the naviframe object could give focus to its first object of prev item. It could ruin focus orders and failed to restore previous focused object in the item. To keep consistency of focus policy, same logic will be applied to item push scenario. @fix Change-Id: Ia74bdce3620bd59622ef32a0cedf5fbd84815400 --- src/lib/elementary/elc_naviframe.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/lib/elementary/elc_naviframe.c b/src/lib/elementary/elc_naviframe.c index 9bdd867..fb9f988 100644 --- a/src/lib/elementary/elc_naviframe.c +++ b/src/lib/elementary/elc_naviframe.c @@ -1166,6 +1166,7 @@ _on_item_show_finished(void *data, elm_object_signal_emit(VIEW(it), "elm,state,visible", "elm"); + elm_widget_tree_unfocusable_set(VIEW(it), EINA_FALSE); _prev_page_focus_recover(it); if (sd->freeze_events) @@ -1589,7 +1590,7 @@ _item_push_helper(Elm_Naviframe_Item_Data *item) { Elm_Naviframe_Op *nfo = calloc(1, sizeof (Elm_Naviframe_Op)); - elm_widget_tree_unfocusable_set(VIEW(item), EINA_FALSE); + elm_widget_tree_unfocusable_set(VIEW(item), EINA_TRUE); elm_widget_tree_unfocusable_set(VIEW(top_item), EINA_TRUE); if (sd->freeze_events) @@ -1806,7 +1807,6 @@ _elm_naviframe_item_pop(Eo *obj, Elm_Naviframe_Data *sd) Elm_Naviframe_Op *nfo = calloc(1, sizeof (Elm_Naviframe_Op)); elm_widget_tree_unfocusable_set(VIEW(it), EINA_TRUE); - elm_widget_tree_unfocusable_set(VIEW(prev_it), EINA_FALSE); if (sd->freeze_events) { --
