forked from enlightenment/efl
avoid norender when doing initial queued block - it's limited to 1 block
anyway. SVN revision: 47550
This commit is contained in:
parent
31321fb483
commit
a22555c551
|
@ -974,7 +974,7 @@ _item_unrealize(Elm_Genlist_Item *it)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_item_block_recalc(Item_Block *itb, int in, int qadd)
|
_item_block_recalc(Item_Block *itb, int in, int qadd, int norender)
|
||||||
{
|
{
|
||||||
const Eina_List *l;
|
const Eina_List *l;
|
||||||
Elm_Genlist_Item *it;
|
Elm_Genlist_Item *it;
|
||||||
|
@ -1023,7 +1023,7 @@ _item_block_recalc(Item_Block *itb, int in, int qadd)
|
||||||
itb->minh = minh;
|
itb->minh = minh;
|
||||||
itb->changed = EINA_FALSE;
|
itb->changed = EINA_FALSE;
|
||||||
/* force an evas norender to garbage collect deleted objects */
|
/* force an evas norender to garbage collect deleted objects */
|
||||||
evas_norender(evas_object_evas_get(itb->wd->obj));
|
if (norender) evas_norender(evas_object_evas_get(itb->wd->obj));
|
||||||
return showme;
|
return showme;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1154,7 +1154,7 @@ _calc_job(void *data)
|
||||||
if (itb->changed)
|
if (itb->changed)
|
||||||
{
|
{
|
||||||
if (itb->realized) _item_block_unrealize(itb);
|
if (itb->realized) _item_block_unrealize(itb);
|
||||||
showme = _item_block_recalc(itb, in, 0);
|
showme = _item_block_recalc(itb, in, 0, 1);
|
||||||
chb = itb;
|
chb = itb;
|
||||||
}
|
}
|
||||||
itb->y = y;
|
itb->y = y;
|
||||||
|
@ -1269,7 +1269,7 @@ _update_job(void *data)
|
||||||
{
|
{
|
||||||
position = 1;
|
position = 1;
|
||||||
itb->changed = EINA_TRUE;
|
itb->changed = EINA_TRUE;
|
||||||
_item_block_recalc(itb, num0, 0);
|
_item_block_recalc(itb, num0, 0, 1);
|
||||||
_item_block_position(itb, num0);
|
_item_block_position(itb, num0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1684,9 +1684,8 @@ _item_block_add(Widget_Data *wd, Elm_Genlist_Item *it)
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
static int
|
||||||
_item_idler(void *data)
|
_queue_proecess(Widget_Data *wd, int norender)
|
||||||
{
|
{
|
||||||
Widget_Data *wd = data;
|
|
||||||
int n, showme = 0;
|
int n, showme = 0;
|
||||||
double t0, t;
|
double t0, t;
|
||||||
|
|
||||||
|
@ -1702,7 +1701,7 @@ _item_idler(void *data)
|
||||||
t = ecore_time_get();
|
t = ecore_time_get();
|
||||||
if (it->block->changed)
|
if (it->block->changed)
|
||||||
{
|
{
|
||||||
showme = _item_block_recalc(it->block, it->block->num, 1);
|
showme = _item_block_recalc(it->block, it->block->num, 1, norender);
|
||||||
it->block->changed = 0;
|
it->block->changed = 0;
|
||||||
}
|
}
|
||||||
if (showme) it->block->showme = 1;
|
if (showme) it->block->showme = 1;
|
||||||
|
@ -1711,7 +1710,15 @@ _item_idler(void *data)
|
||||||
if ((t - t0) > (ecore_animator_frametime_get())) break;
|
if ((t - t0) > (ecore_animator_frametime_get())) break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (n > 0)
|
return n;
|
||||||
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
_item_idler(void *data)
|
||||||
|
{
|
||||||
|
Widget_Data *wd = data;
|
||||||
|
|
||||||
|
if (_queue_proecess(wd, 1) > 0)
|
||||||
{
|
{
|
||||||
if (wd->calc_job) ecore_job_del(wd->calc_job);
|
if (wd->calc_job) ecore_job_del(wd->calc_job);
|
||||||
wd->calc_job = ecore_job_add(_calc_job, wd);
|
wd->calc_job = ecore_job_add(_calc_job, wd);
|
||||||
|
@ -1737,7 +1744,7 @@ _item_queue(Widget_Data *wd, Elm_Genlist_Item *it)
|
||||||
ecore_idler_del(wd->queue_idler);
|
ecore_idler_del(wd->queue_idler);
|
||||||
wd->queue_idler = NULL;
|
wd->queue_idler = NULL;
|
||||||
}
|
}
|
||||||
_item_idler(wd);
|
_queue_proecess(wd, 0);
|
||||||
}
|
}
|
||||||
if (!wd->queue_idler) wd->queue_idler = ecore_idler_add(_item_idler, wd);
|
if (!wd->queue_idler) wd->queue_idler = ecore_idler_add(_item_idler, wd);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue