- // XXX This is a hack.
- unsigned n_items=list.get_n_items();
- const Style &stl=list.get_style();
- const GL::Font &font=*stl.get_font();
- unsigned h=min(max(n_items, 1U), 10U)*static_cast<unsigned>((font.get_ascent()-font.get_descent())*font.get_default_size());
- for(std::list<Part>::const_iterator i=stl.get_parts().begin(); i!=stl.get_parts().end(); ++i)
- if(i->get_name()=="items")
- {
- const Sides &margin=i->get_margin();
- h+=margin.top+margin.bottom;
- }
- list.set_geometry(Geometry(0, -h, geom.w, h));
+ list.autosize();
+ const Geometry &lgeom = list.get_geometry();
+ list.set_geometry(Geometry(0, -lgeom.h, max(geom.w, lgeom.w), lgeom.h));