summaryrefslogtreecommitdiff
path: root/src/lib/elementary/elc_naviframe.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/elementary/elc_naviframe.c')
-rw-r--r--src/lib/elementary/elc_naviframe.c11
1 files changed, 8 insertions, 3 deletions
diff --git a/src/lib/elementary/elc_naviframe.c b/src/lib/elementary/elc_naviframe.c
index 10368cb014..e68d5803b2 100644
--- a/src/lib/elementary/elc_naviframe.c
+++ b/src/lib/elementary/elc_naviframe.c
@@ -1088,6 +1088,13 @@ _on_item_push_finished(void *data,
ELM_NAVIFRAME_DATA_GET(WIDGET(it), sd);
+ /* If pushed item becomes top item, then do not hide pushed item view.
+ * If top item is deleted in "transition,finished" smart callback by user
+ * before this function is called, then pushed item becomes top item.
+ */
+ if (EO_OBJ(it) == elm_naviframe_top_item_get(WIDGET(it)))
+ return;
+
evas_object_hide(VIEW(it));
elm_object_signal_emit(VIEW(it), "elm,state,invisible", "elm");
@@ -1733,9 +1740,7 @@ _elm_naviframe_item_pop(Eo *obj, Elm_Naviframe_Data *sd)
if (!it->pop_cb(it->pop_data, eo_item))
{
efl_unref(eo_item);
- if (it->delete_me)
- efl_del(eo_item);
- else
+ if (!it->delete_me)
{
/* To avoid multiple item pops, the auto pushed button deletes
its clicked callback once it is called.