From: Youngbok Shin Date: Wed, 8 Mar 2017 05:15:56 +0000 (+0900) Subject: naviframe: keep unfocusable state of item before finishing item push/pop X-Git-Tag: upstream/1.20.0~1791 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=a7b501d94764f3cd183fcfb92fe201ab8f954dc2;p=platform%2Fupstream%2Fefl.git 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 --- 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) {