From 8da842900fc1a32e9b79a6b55bf0b2bd5798e7de Mon Sep 17 00:00:00 2001 From: Mike Blumenkrantz Date: Wed, 30 May 2012 10:44:59 +0000 Subject: [PATCH] also fix selected item scrolling when item prepended to the genlist is offscreen SVN revision: 71554 --- src/lib/elm_genlist.c | 21 +++++++++++++++------ 1 file changed, 15 insertions(+), 6 deletions(-) diff --git a/src/lib/elm_genlist.c b/src/lib/elm_genlist.c index f880d21..4c22f70 100644 --- a/src/lib/elm_genlist.c +++ b/src/lib/elm_genlist.c @@ -4139,14 +4139,23 @@ _item_process_post(Widget_Data *wd, Elm_Gen_Item *it, Eina_Bool qadd) if (wd->selected && it->item->before) { int y, h; - it = wd->selected->data; + Elm_Gen_Item *it2; + it2 = wd->selected->data; elm_smart_scroller_child_pos_get(wd->scr, NULL, &y); evas_object_geometry_get(wd->pan_smart, NULL, NULL, NULL, &h); - elm_smart_scroller_child_region_show(wd->scr, - it->x + it->item->block->x, - y + it->item->h, - it->item->block->w, - h); + if ((it->y + it->item->block->y > y + h) || (it->y + it->item->block->y + it->item->h < y)) + /* offscreen, just update */ + elm_smart_scroller_child_region_show(wd->scr, + it2->x + it2->item->block->x, + y, + it2->item->block->w, + h); + else + elm_smart_scroller_child_region_show(wd->scr, + it->x + it->item->block->x, + y + it->item->h, + it->item->block->w, + h); } } -- 2.7.4