genlist prepends no longer cause selected items to be autoscrolled out of the viewport
authorMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Tue, 29 May 2012 10:25:55 +0000 (10:25 +0000)
committerMike Blumenkrantz <michael.blumenkrantz@gmail.com>
Tue, 29 May 2012 10:25:55 +0000 (10:25 +0000)
SVN revision: 71500

ChangeLog
src/lib/elm_genlist.c

index 94be09f..3813d23 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
        * Made elm_object_focus_set() fall back to evbas_object_focus_set()
          if the object is not an elm widget.
 
+2012-05-29 Mike Blumenkrantz
+
+        * Prepending items to a genlist no longer causes the selected item to
+          scroll out of the viewport
index 48fab79..15a2e8e 100644 (file)
@@ -4116,6 +4116,18 @@ _item_process_post(Widget_Data *wd, Elm_Gen_Item *it, Eina_Bool qadd)
           }
      }
    if (showme) it->item->block->showme = EINA_TRUE;
+   /* when prepending, move the scroller along with the first selected item to
+    * create the illusion that we're watching the selected item
+    * this prevents the selected item being scrolled off the viewport
+    */
+   if (wd->selected && it->item->before)
+     {
+        int y, h;
+        it = 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);
+     }
 }
 
 static int