item show and bring can be processed with zero-sized pan.
item's coordinate will be calculated with this zero-sized pan,
so target position of scroll region bring in is not proper.
it occurs wrong result of SCROLLTO_MIDDLE and SCROLLTO_BOTTOM cases.
now we check pan size, and if less than 1, deferred call.
this is port of upstream patch D7037
Change-Id: Ie5d5ecd039d835caefa47c272547506946e91a37
Signed-off-by: SangHyeon Jade Lee <sh10233.lee@samsung.com>
dh = oh;
if (dw < 1) return;
+ if (ow < 1 || oh < 1) return;
switch (sd->scroll_to_type)
{
if ((it->item->queued) || (!it->item->mincalcd) || (sd->queue))
deferred_show = EINA_TRUE;
}
- else if (it->item->block->w < 1) deferred_show = EINA_TRUE;
+ if (it->item->block->w < 1) deferred_show = EINA_TRUE;
+
+ evas_object_geometry_get(sd->pan_obj, NULL, NULL, w, h);
+ if (*w < 1 || *h < 1) deferred_show = EINA_TRUE;
if (deferred_show)
{
sd->show_item = NULL;
}
- evas_object_geometry_get(sd->pan_obj, NULL, NULL, w, h);
switch (type)
{
case ELM_GENLIST_ITEM_SCROLLTO_IN: