summaryrefslogtreecommitdiff
path: root/src/lib/elementary
diff options
context:
space:
mode:
authorYoungbok Shin <youngb.shin@samsung.com>2017-03-08 14:15:56 +0900
committerJaehyun Cho <jae_hyun.cho@samsung.com>2017-03-08 17:26:59 +0900
commita7b501d94764f3cd183fcfb92fe201ab8f954dc2 (patch)
treec358414b7349b22211521888d6f9034f7c183b98 /src/lib/elementary
parent99d21f6d9c6e65e744f5276c9c01207385b75388 (diff)
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
Diffstat (limited to 'src/lib/elementary')
-rw-r--r--src/lib/elementary/elc_naviframe.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/lib/elementary/elc_naviframe.c b/src/lib/elementary/elc_naviframe.c
index 9bdd86778c..fb9f98878b 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,
1166 1166
1167 elm_object_signal_emit(VIEW(it), "elm,state,visible", "elm"); 1167 elm_object_signal_emit(VIEW(it), "elm,state,visible", "elm");
1168 1168
1169 elm_widget_tree_unfocusable_set(VIEW(it), EINA_FALSE);
1169 _prev_page_focus_recover(it); 1170 _prev_page_focus_recover(it);
1170 1171
1171 if (sd->freeze_events) 1172 if (sd->freeze_events)
@@ -1589,7 +1590,7 @@ _item_push_helper(Elm_Naviframe_Item_Data *item)
1589 { 1590 {
1590 Elm_Naviframe_Op *nfo = calloc(1, sizeof (Elm_Naviframe_Op)); 1591 Elm_Naviframe_Op *nfo = calloc(1, sizeof (Elm_Naviframe_Op));
1591 1592
1592 elm_widget_tree_unfocusable_set(VIEW(item), EINA_FALSE); 1593 elm_widget_tree_unfocusable_set(VIEW(item), EINA_TRUE);
1593 elm_widget_tree_unfocusable_set(VIEW(top_item), EINA_TRUE); 1594 elm_widget_tree_unfocusable_set(VIEW(top_item), EINA_TRUE);
1594 1595
1595 if (sd->freeze_events) 1596 if (sd->freeze_events)
@@ -1806,7 +1807,6 @@ _elm_naviframe_item_pop(Eo *obj, Elm_Naviframe_Data *sd)
1806 Elm_Naviframe_Op *nfo = calloc(1, sizeof (Elm_Naviframe_Op)); 1807 Elm_Naviframe_Op *nfo = calloc(1, sizeof (Elm_Naviframe_Op));
1807 1808
1808 elm_widget_tree_unfocusable_set(VIEW(it), EINA_TRUE); 1809 elm_widget_tree_unfocusable_set(VIEW(it), EINA_TRUE);
1809 elm_widget_tree_unfocusable_set(VIEW(prev_it), EINA_FALSE);
1810 1810
1811 if (sd->freeze_events) 1811 if (sd->freeze_events)
1812 { 1812 {