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.
This commit is contained in:
Jaehyun Cho 2017-08-09 23:32:35 +09:00
parent e2fca6c454
commit be0af0ed00
1 changed files with 10 additions and 2 deletions

View File

@ -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);