jaehyun pushed a commit to branch master.

http://git.enlightenment.org/core/efl.git/commit/?id=be0af0ed00148c55e1eb519444ea48201677badb

commit be0af0ed00148c55e1eb519444ea48201677badb
Author: Jaehyun Cho <jae_hyun....@samsung.com>
Date:   Wed Aug 9 23:32:35 2017 +0900

    elc_naviframe: Fix to handle item deletion right after item push
    
    If an item is deleted right after the item is newly pushed, the push
    transition should not happen for both the new item and the current item.
---
 src/lib/elementary/elc_naviframe.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/src/lib/elementary/elc_naviframe.c 
b/src/lib/elementary/elc_naviframe.c
index 42f5a40c98..f057bb57d9 100644
--- a/src/lib/elementary/elc_naviframe.c
+++ b/src/lib/elementary/elc_naviframe.c
@@ -616,8 +616,16 @@ end:
    // make sure there is no more reference to this item.
    EINA_LIST_FOREACH(sd->ops, l, nfo)
      {
-        if (nfo->related == nit) nfo->related = NULL;
-        if (nfo->self == nit) nfo->self = NULL;
+        /* If an transition is cancelled by deleting an item, then the pair
+         * transition also should be cancelled.
+         * This case can happen when an item is deleted by 
elm_object_item_del()
+         * right after the item is newly pushed.
+         */
+        if ((nfo->self == nit) || (nfo->related == nit))
+          {
+             nfo->self = NULL;
+             nfo->related = NULL;
+          }
      }
 
    _item_free(nit);

-- 


Reply via email to