From: "Vladimir 'φ-coder/phcoder' Serbinenko" <phcoder@gmail.com>
To: The development of GNU GRUB <grub-devel@gnu.org>
Subject: Re: [PATCH] fix menu size calculation in presence of selected item pixmap
Date: Mon, 08 Apr 2013 20:51:17 +0200 [thread overview]
Message-ID: <516311A5.3090506@gmail.com> (raw)
In-Reply-To: <1361468201-26961-1-git-send-email-arvidjaar@gmail.com>
[-- Attachment #1: Type: text/plain, Size: 2324 bytes --]
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 <arvidjaar@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
> {
[-- Attachment #2: OpenPGP digital signature --]
[-- Type: application/pgp-signature, Size: 294 bytes --]
next prev parent reply other threads:[~2013-04-08 18:51 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-02-21 17:36 [PATCH] fix menu size calculation in presence of selected item pixmap Andrey Borzenkov
2013-04-08 18:51 ` Vladimir 'φ-coder/phcoder' Serbinenko [this message]
2013-04-09 15:54 ` Andrey Borzenkov
-- strict thread matches above, loose matches on Subject: below --
2013-04-09 9:08 Vladimir Testov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=516311A5.3090506@gmail.com \
--to=phcoder@gmail.com \
--cc=grub-devel@gnu.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.