On 21.02.2013 18:36, Andrey Borzenkov wrote: > draw_menu() acconted for upper border of selected item pixmap, but not > for lower. So it could happen that lower border was visually cut off. > > Also various calculations of menu vertical size did not account for > space for lower border > > Signed-off-by: Andrey Borzenkov <arvidj...@gmail.com> > > --- > grub-core/gfxmenu/gui_list.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/grub-core/gfxmenu/gui_list.c b/grub-core/gfxmenu/gui_list.c > index 1982d9a..5c83383 100644 > --- a/grub-core/gfxmenu/gui_list.c > +++ b/grub-core/gfxmenu/gui_list.c > @@ -97,8 +97,14 @@ get_num_shown_items (list_impl_t self) > grub_gfxmenu_box_t box = self->menu_box; > int box_top_pad = box->get_top_pad (box); > int box_bottom_pad = box->get_bottom_pad (box); > + > + grub_gfxmenu_box_t selbox = self->selected_item_box; > + int sel_top_pad = selbox->get_top_pad (selbox); > + int sel_bottom_pad = selbox->get_bottom_pad (selbox); > + > > return (self->bounds.height + item_vspace - 2 * boxpad > + - sel_top_pad - sel_bottom_pad
I don't see the logic behind this. item_top in draw_menu doesn't increase more on selected item than on any other one. > - box_top_pad - box_bottom_pad) / (item_height + item_vspace); > } > > @@ -392,7 +398,8 @@ list_get_minimal_size (void *vself, unsigned *width, > unsigned *height) > unsigned width_s; > > grub_gfxmenu_box_t selbox = self->selected_item_box; > - int sel_toppad = selbox->get_top_pad (selbox); > + int sel_top_pad = selbox->get_top_pad (selbox); > + int sel_bottom_pad = selbox->get_bottom_pad (selbox); > > *width = grub_font_get_string_width (self->item_font, "Typical OS"); > width_s = grub_font_get_string_width (self->selected_item_font, > @@ -406,7 +413,7 @@ list_get_minimal_size (void *vself, unsigned *width, > unsigned *height) > *height = (item_height * num_items > + item_vspace * (num_items - 1) > + 2 * boxpad > - + box_top_pad + box_bottom_pad + sel_toppad); > + + box_top_pad + box_bottom_pad + sel_top_pad + > sel_bottom_pad); > } > else > {
signature.asc
Description: OpenPGP digital signature
_______________________________________________ Grub-devel mailing list Grub-devel@gnu.org https://lists.gnu.org/mailman/listinfo/grub-devel