+ int dy = y-drag_start_y;
+ if(dy>0 && first<max_scroll)
+ {
+ int item_h = items[first]->get_geometry().h;
+ if(dy>item_h)
+ {
+ drag_start_y += item_h;
+ slider.set_value(max_scroll-(first+1));
+ }
+ }
+ else if(dy<0 && first>0)
+ {
+ int item_h = items[first-1]->get_geometry().h;
+ if(-dy>item_h)
+ {
+ drag_start_y -= item_h;
+ slider.set_value(max_scroll-(first-1));
+ }
+ }
+ }
+}
+
+void List::focus_in()
+{
+ Container::focus_in();
+ if(focus_index>=0 && items[focus_index]->is_visible())