grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [PATCH] fix menu size calculation in presence of selected item pixma


From: Vladimir 'φ-coder/phcoder' Serbinenko
Subject: Re: [PATCH] fix menu size calculation in presence of selected item pixmap
Date: Mon, 08 Apr 2013 20:51:17 +0200
User-agent: Mozilla/5.0 (X11; Linux x86_64; rv:10.0.12) Gecko/20130116 Icedove/10.0.12

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 <address@hidden>
> 
> ---
>  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
>      {



Attachment: signature.asc
Description: OpenPGP digital signature


reply via email to

[Prev in Thread] Current Thread [Next in Thread]