static void _show_region_hook(void *data,
Evas_Object *obj);
static void _sizing_eval(Evas_Object *obj);
-static void _item_unrealize(Elm_Genlist_Item *it);
+static void _item_unrealize(Elm_Genlist_Item *it, Eina_Bool calc);
static void _item_block_unrealize(Item_Block *itb);
static void _calc_job(void *data);
static void _on_focus_hook(void *data,
it->wd->walking -= it->walking;
if (it->wd->show_item == it) it->wd->show_item = NULL;
if (it->selected) it->wd->selected = eina_list_remove(it->wd->selected, it);
- if (it->realized) _item_unrealize(it);
+ if (it->realized) _item_unrealize(it, EINA_FALSE);
if (it->effect_item_realized) _effect_item_unrealize(it);
if (it->block) _item_block_del(it);
if ((!it->delete_me) && (it->itc->func.del))
{
if (it->want_unrealize)
{
- _item_unrealize(it);
+ _item_unrealize(it, EINA_FALSE);
if (it->block->want_unrealize)
_item_block_unrealize(it->block);
}
it->want_unrealize = EINA_FALSE;
if (itc) _item_cache_free(itc);
- evas_object_smart_callback_call(it->base.widget, "realized", it);
+ if (!calc) evas_object_smart_callback_call(it->base.widget, "realized", it);
if ((!calc) && (it->wd->edit_mode) && (it->flags != ELM_GENLIST_ITEM_GROUP))
{
if (it->itc->edit_item_style )
}
static void
-_item_unrealize(Elm_Genlist_Item *it)
+_item_unrealize(Elm_Genlist_Item *it, Eina_Bool calc)
{
Evas_Object *icon;
if (!it->realized) return;
if (it->wd->reorder_it && it->wd->reorder_it == it) return;
- evas_object_smart_callback_call(it->base.widget, "unrealized", it);
+ if (!calc) evas_object_smart_callback_call(it->base.widget, "unrealized", it);
if (it->long_timer)
{
ecore_timer_del(it->long_timer);
if (changed)
{
_item_realize(it, in, EINA_TRUE);
- _item_unrealize(it);
+ _item_unrealize(it, EINA_TRUE);
}
}
else
{
_item_realize(it, in, EINA_TRUE);
- if (!it->wd->contracting) _item_unrealize(it);
+ if (!it->wd->contracting) _item_unrealize(it, EINA_TRUE);
}
}
else
it->want_unrealize = EINA_TRUE;
}
else
- if (!it->wd->contracting) _item_unrealize(it);
+ if (!it->wd->contracting) _item_unrealize(it, EINA_FALSE);
}
}
if (!dragging)
}
else
{
- if (!it->dragging) _item_unrealize(it);
+ if (!it->dragging) _item_unrealize(it, EINA_FALSE);
}
}
in++;
else if (!git->want_realize && git->realized)
{
if (!git->dragging)
- _item_unrealize(git);
+ _item_unrealize(git, EINA_FALSE);
}
}
}
it->updateme = EINA_FALSE;
if (it->realized)
{
- _item_unrealize(it);
+ _item_unrealize(it, EINA_FALSE);
_item_realize(it, num, 0);
position = 1;
}
else
{
_item_realize(it, num, 1);
- _item_unrealize(it);
+ _item_unrealize(it, EINA_TRUE);
}
if ((it->minw != itminw) || (it->minh != itminh))
recalc = 1;
if (it->flags & ELM_GENLIST_ITEM_GROUP)
it->wd->group_items = eina_list_remove(it->wd->group_items, it);
elm_widget_item_pre_notify_del(it);
- if (it->realized) _item_unrealize(it);
+ if (it->realized) _item_unrealize(it, EINA_FALSE);
if (((wd->clear_me) || (!it->delete_me)) && (it->itc->func.del))
it->itc->func.del((void *)it->base.data, it->base.widget);
if (it->long_timer) ecore_timer_del(it->long_timer);
it);
if (it->block)
{
- if (it->realized) _item_unrealize(it);
+ if (it->realized) _item_unrealize(it, EINA_FALSE);
it->block->changed = EINA_TRUE;
if (it->wd->calc_job) ecore_job_del(it->wd->calc_job);
it->wd->calc_job = ecore_job_add(_calc_job, it->wd);
if (renamed)
{
- _item_unrealize(it);
+ _item_unrealize(it, EINA_FALSE);
it->renamed = EINA_TRUE;
it->wd->rename_it = it;
it->nocache = EINA_TRUE;