If current item was deleted while new item was pushed, then the signals
for the newly pushed item was not sent.
The above issue happened if the transition effect was implemented by
using deferred signals (i.e. "pushed,deferred" and "popped,deferred").
To resolve the above issue, the signals only for the deleted item is not
sent.
* 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;
- }
+ if (nit == nfo->self)
+ nfo->self = NULL;
+ else if (nit == nfo->related)
+ nfo->related = NULL;
}
_item_free(nit);