forked from enlightenment/efl
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>
This commit is contained in:
parent
dc137aba43
commit
d3440a9867
|
@ -167,6 +167,9 @@ static Eina_Bool _elm_genlist_tree_effect_setup(Elm_Genlist_Data *sd);
|
||||||
|
|
||||||
static void _item_expanded_set_noevent(Elm_Gen_Item *it, Eina_Bool expanded);
|
static void _item_expanded_set_noevent(Elm_Gen_Item *it, Eina_Bool expanded);
|
||||||
|
|
||||||
|
static Eina_Bool _item_process(Elm_Genlist_Data *sd, Elm_Gen_Item *it);
|
||||||
|
static void _item_process_post(Elm_Genlist_Data *sd, Elm_Gen_Item *it);
|
||||||
|
|
||||||
static const Elm_Action key_actions[] = {
|
static const Elm_Action key_actions[] = {
|
||||||
{"move", _key_action_move},
|
{"move", _key_action_move},
|
||||||
{"select", _key_action_select},
|
{"select", _key_action_select},
|
||||||
|
@ -3732,16 +3735,26 @@ _item_del(Elm_Gen_Item *it)
|
||||||
|
|
||||||
evas_event_freeze(evas_object_evas_get(obj));
|
evas_event_freeze(evas_object_evas_get(obj));
|
||||||
|
|
||||||
|
if (it->item->rel_revs)
|
||||||
|
{
|
||||||
|
Elm_Gen_Item *tmp;
|
||||||
|
EINA_LIST_FREE(it->item->rel_revs, tmp)
|
||||||
|
{
|
||||||
|
if (tmp->item->queued && !(tmp->base)->on_deletion)
|
||||||
|
{
|
||||||
|
tmp->item->queued = EINA_FALSE;
|
||||||
|
sd->queue = eina_list_remove(sd->queue, tmp);
|
||||||
|
_item_process(sd, tmp);
|
||||||
|
_item_process_post(sd, tmp);
|
||||||
|
}
|
||||||
|
tmp->item->rel = NULL;
|
||||||
|
}
|
||||||
|
}
|
||||||
if (it->item->rel)
|
if (it->item->rel)
|
||||||
{
|
{
|
||||||
it->item->rel->item->rel_revs =
|
it->item->rel->item->rel_revs =
|
||||||
eina_list_remove(it->item->rel->item->rel_revs, it);
|
eina_list_remove(it->item->rel->item->rel_revs, it);
|
||||||
}
|
}
|
||||||
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_OBJ(it));
|
elm_genlist_item_subitems_clear(EO_OBJ(it));
|
||||||
if (sd->show_item == it) sd->show_item = NULL;
|
if (sd->show_item == it) sd->show_item = NULL;
|
||||||
if (it->realized) _elm_genlist_item_unrealize(it, EINA_FALSE);
|
if (it->realized) _elm_genlist_item_unrealize(it, EINA_FALSE);
|
||||||
|
|
Loading…
Reference in New Issue