summaryrefslogtreecommitdiff
path: root/src/lib
diff options
context:
space:
mode:
authorSangHyeon Jade Lee <dltkdgus1764@gmail.com>2017-09-15 12:11:50 +0900
committerSangHyeon Jade Lee <dltkdgus1764@gmail.com>2017-09-15 12:11:55 +0900
commitd3440a9867cf67f03f7fea02075f88d0441c92e7 (patch)
treec94dcc6e18986258fa2a0d78db5c624ba106054a /src/lib
parentdc137aba436e235995c0760694aea89d663e15e7 (diff)
genlist: process item block positioning before relative item deleted
process item for positioning proper relative block before it's relative item is deleted. Signed-off-by: SangHyeon Jade Lee <dltkdgus1764@gmail.com>
Diffstat (limited to 'src/lib')
-rw-r--r--src/lib/elementary/elm_genlist.c23
1 files changed, 18 insertions, 5 deletions
diff --git a/src/lib/elementary/elm_genlist.c b/src/lib/elementary/elm_genlist.c
index 9dc9c98..912cbb6 100644
--- a/src/lib/elementary/elm_genlist.c
+++ b/src/lib/elementary/elm_genlist.c
@@ -167,6 +167,9 @@ static Eina_Bool _elm_genlist_tree_effect_setup(Elm_Genlist_Data *sd);
167 167
168static void _item_expanded_set_noevent(Elm_Gen_Item *it, Eina_Bool expanded); 168static void _item_expanded_set_noevent(Elm_Gen_Item *it, Eina_Bool expanded);
169 169
170static Eina_Bool _item_process(Elm_Genlist_Data *sd, Elm_Gen_Item *it);
171static void _item_process_post(Elm_Genlist_Data *sd, Elm_Gen_Item *it);
172
170static const Elm_Action key_actions[] = { 173static const Elm_Action key_actions[] = {
171 {"move", _key_action_move}, 174 {"move", _key_action_move},
172 {"select", _key_action_select}, 175 {"select", _key_action_select},
@@ -3732,16 +3735,26 @@ _item_del(Elm_Gen_Item *it)
3732 3735
3733 evas_event_freeze(evas_object_evas_get(obj)); 3736 evas_event_freeze(evas_object_evas_get(obj));
3734 3737
3738 if (it->item->rel_revs)
3739 {
3740 Elm_Gen_Item *tmp;
3741 EINA_LIST_FREE(it->item->rel_revs, tmp)
3742 {
3743 if (tmp->item->queued && !(tmp->base)->on_deletion)
3744 {
3745 tmp->item->queued = EINA_FALSE;
3746 sd->queue = eina_list_remove(sd->queue, tmp);
3747 _item_process(sd, tmp);
3748 _item_process_post(sd, tmp);
3749 }
3750 tmp->item->rel = NULL;
3751 }
3752 }
3735 if (it->item->rel) 3753 if (it->item->rel)
3736 { 3754 {
3737 it->item->rel->item->rel_revs = 3755 it->item->rel->item->rel_revs =
3738 eina_list_remove(it->item->rel->item->rel_revs, it); 3756 eina_list_remove(it->item->rel->item->rel_revs, it);
3739 } 3757 }
3740 if (it->item->rel_revs)
3741 {
3742 Elm_Gen_Item *tmp;
3743 EINA_LIST_FREE(it->item->rel_revs, tmp) tmp->item->rel = NULL;
3744 }
3745 elm_genlist_item_subitems_clear(EO_OBJ(it)); 3758 elm_genlist_item_subitems_clear(EO_OBJ(it));
3746 if (sd->show_item == it) sd->show_item = NULL; 3759 if (sd->show_item == it) sd->show_item = NULL;
3747 if (it->realized) _elm_genlist_item_unrealize(it, EINA_FALSE); 3760 if (it->realized) _elm_genlist_item_unrealize(it, EINA_FALSE);