summaryrefslogtreecommitdiff
path: root/src/lib/elementary
diff options
context:
space:
mode:
Diffstat (limited to 'src/lib/elementary')
-rw-r--r--src/lib/elementary/elc_naviframe.c19
1 files changed, 13 insertions, 6 deletions
diff --git a/src/lib/elementary/elc_naviframe.c b/src/lib/elementary/elc_naviframe.c
index cd53e7aebe..9f4f425c78 100644
--- a/src/lib/elementary/elc_naviframe.c
+++ b/src/lib/elementary/elc_naviframe.c
@@ -622,16 +622,23 @@ end:
622 // make sure there is no more reference to this item. 622 // make sure there is no more reference to this item.
623 EINA_LIST_FOREACH(sd->ops, l, nfo) 623 EINA_LIST_FOREACH(sd->ops, l, nfo)
624 { 624 {
625 /* If an transition is cancelled by deleting an item, then the pair 625 /* If an item is newly pushed and then deleted by elm_object_item_del()
626 * transition also should be cancelled. 626 * before item push transition is not started, then the item push
627 * This case can happen when an item is deleted by elm_object_item_del() 627 * transitions for both new item and current item should be cancelled.
628 * right after the item is newly pushed. 628 * Otherwise, the current item becomes invisible due to the item push
629 */ 629 * transition. */
630 if ((nfo->self == nit) || (nfo->related == nit)) 630 if ((nit->pushing) && (nfo->self == nit))
631 { 631 {
632 nfo->self = NULL; 632 nfo->self = NULL;
633 nfo->related = NULL; 633 nfo->related = NULL;
634 } 634 }
635 else
636 {
637 if (nfo->self == nit)
638 nfo->self = NULL;
639 if (nfo->related == nit)
640 nfo->related = NULL;
641 }
635 } 642 }
636 643
637 _item_free(nit); 644 _item_free(nit);