From: ChunEon Park Date: Wed, 14 Jan 2015 14:19:29 +0000 (+0900) Subject: genilst: fix regression bug added in 0e7d521151ba93f3b5955caaf9b906e160ab6057 X-Git-Tag: v1.13.0-beta1~18 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=ad5c83b6686370acc7300a1eb3a39bb6a47b9571;p=platform%2Fupstream%2Felementary.git genilst: fix regression bug added in 0e7d521151ba93f3b5955caaf9b906e160ab6057 some logic of deleting item were duplicated. this fixes fileselector crash issue. --- diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index 3083f0f..a4ebbf8 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -3584,10 +3584,11 @@ _item_del(Elm_Gen_Item *it) evas_event_freeze(evas_object_evas_get(obj)); - // FIXME: relative will be better to be fixed. it is too harsh. - if (it->item->rel && it->item->rel->item) - it->item->rel->item->rel_revs = - eina_list_remove(it->item->rel->item->rel_revs, it); + if (it->item->rel) + { + it->item->rel->item->rel_revs = + eina_list_remove(it->item->rel->item->rel_revs, it); + } if (it->item->rel_revs) { Elm_Gen_Item *tmp; @@ -5764,41 +5765,9 @@ _elm_genlist_item_elm_widget_item_disable(Eo *eo_it, Elm_Gen_Item *it) } EOLIAN static Eina_Bool -_elm_genlist_item_elm_widget_item_del_pre(Eo *eo_it, Elm_Gen_Item *it) +_elm_genlist_item_elm_widget_item_del_pre(Eo *eo_it EINA_UNUSED, + Elm_Gen_Item *it) { - ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd); - - // FIXME: relative will be better to be fixed. it is too harsh. - if (it->item->rel) - { - it->item->rel->item->rel_revs = - eina_list_remove(it->item->rel->item->rel_revs, it); - it->item->rel = NULL; - } - if (it->item->rel_revs) - { - Elm_Gen_Item *tmp; - EINA_LIST_FREE(it->item->rel_revs, tmp) tmp->item->rel = NULL; - } - elm_genlist_item_subitems_clear(eo_it); - if (sd->show_item == it) - sd->show_item = NULL; - - _elm_genlist_item_del_not_serious(it); - if (it->item->block) - { - if (it->realized) _elm_genlist_item_unrealize(it, EINA_FALSE); - it->item->block->changed = EINA_TRUE; - ecore_job_del(sd->calc_job); - sd->calc_job = ecore_job_add(_calc_job, sd->obj); - } - if (it->parent) - { - it->parent->item->items = - eina_list_remove(it->parent->item->items, eo_it); - it->parent = NULL; - } - _item_del(it); return EINA_TRUE; }