summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChunEon Park <hermet@hermet.pe.kr>2015-01-14 23:19:29 +0900
committerChunEon Park <hermet@hermet.pe.kr>2015-01-14 23:21:32 +0900
commitad5c83b6686370acc7300a1eb3a39bb6a47b9571 (patch)
treed5ec3b062d07bdceeedd544f7ca7fdf0ec29a861
parent94b4002c3553ecaf822ce78995f0e4f85fae2ca1 (diff)
genilst: fix regression bug added in 0e7d521151ba93f3b5955caaf9b906e160ab6057
some logic of deleting item were duplicated. this fixes fileselector crash issue.
-rw-r--r--src/lib/elm_genlist.c45
1 files changed, 7 insertions, 38 deletions
diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c
index 3083f0f9c..a4ebbf89b 100644
--- a/src/lib/elm_genlist.c
+++ b/src/lib/elm_genlist.c
@@ -3584,10 +3584,11 @@ _item_del(Elm_Gen_Item *it)
3584 3584
3585 evas_event_freeze(evas_object_evas_get(obj)); 3585 evas_event_freeze(evas_object_evas_get(obj));
3586 3586
3587 // FIXME: relative will be better to be fixed. it is too harsh. 3587 if (it->item->rel)
3588 if (it->item->rel && it->item->rel->item) 3588 {
3589 it->item->rel->item->rel_revs = 3589 it->item->rel->item->rel_revs =
3590 eina_list_remove(it->item->rel->item->rel_revs, it); 3590 eina_list_remove(it->item->rel->item->rel_revs, it);
3591 }
3591 if (it->item->rel_revs) 3592 if (it->item->rel_revs)
3592 { 3593 {
3593 Elm_Gen_Item *tmp; 3594 Elm_Gen_Item *tmp;
@@ -5764,41 +5765,9 @@ _elm_genlist_item_elm_widget_item_disable(Eo *eo_it, Elm_Gen_Item *it)
5764} 5765}
5765 5766
5766EOLIAN static Eina_Bool 5767EOLIAN static Eina_Bool
5767_elm_genlist_item_elm_widget_item_del_pre(Eo *eo_it, Elm_Gen_Item *it) 5768_elm_genlist_item_elm_widget_item_del_pre(Eo *eo_it EINA_UNUSED,
5769 Elm_Gen_Item *it)
5768{ 5770{
5769 ELM_GENLIST_DATA_GET_FROM_ITEM(it, sd);
5770
5771 // FIXME: relative will be better to be fixed. it is too harsh.
5772 if (it->item->rel)
5773 {
5774 it->item->rel->item->rel_revs =
5775 eina_list_remove(it->item->rel->item->rel_revs, it);
5776 it->item->rel = NULL;
5777 }
5778 if (it->item->rel_revs)
5779 {
5780 Elm_Gen_Item *tmp;
5781 EINA_LIST_FREE(it->item->rel_revs, tmp) tmp->item->rel = NULL;
5782 }
5783 elm_genlist_item_subitems_clear(eo_it);
5784 if (sd->show_item == it)
5785 sd->show_item = NULL;
5786
5787 _elm_genlist_item_del_not_serious(it);
5788 if (it->item->block)
5789 {
5790 if (it->realized) _elm_genlist_item_unrealize(it, EINA_FALSE);
5791 it->item->block->changed = EINA_TRUE;
5792 ecore_job_del(sd->calc_job);
5793 sd->calc_job = ecore_job_add(_calc_job, sd->obj);
5794 }
5795 if (it->parent)
5796 {
5797 it->parent->item->items =
5798 eina_list_remove(it->parent->item->items, eo_it);
5799 it->parent = NULL;
5800 }
5801
5802 _item_del(it); 5771 _item_del(it);
5803 return EINA_TRUE; 5772 return EINA_TRUE;
5804} 5773}