bugGNU GRUB - Bugs: bug #44991, gfxmenu item drawing broken?


You are not allowed to post comments on this tracker with your current authentication level.

bug #44991: gfxmenu item drawing broken?

Submitted by:  Sebastian Pipping <hartwork>
Submitted on:  Sat 02 May 2015 02:51:03 AM UTC  
Category:  None Severity:  Major
Priority:  5 - Normal Item Group:  None
Status:  None Privacy:  Public
Assigned to:  None Originator Name: 
Open/Closed:  Open Release: 
Release:  2.02~beta1 Reproducibility:  None
Planned Release:  2.03+

Sat 02 May 2015 03:44:52 PM UTC, comment #2:

Test with current Git master, same rendering issue there.

I have uploaded the theme as a new GitHUB repository at

(Fonts are not yet included but the issue shows without fonts as well. I'll move away from DejaVu due to its license, probably.)

PS: I have improved my theme preview tool further, if something like that helps debugging this issue on your end (https://github.com/hartwork/grub2-theme-preview).

Sebastian Pipping <hartwork>
Sat 02 May 2015 09:23:17 AM UTC, comment #1:

This is the order in which grub should paint currently (see grub-core/gfxmenu/view.c:grub_gfxmenu_view_redraw()). Please test with current git master if it is fixed there.

Attaching full theme archive (including fonts) would provide reproducer for others.

Andrei Borzenkov <arvidjaar>
Project Member
Sat 02 May 2015 02:51:03 AM UTC, original submission:


While playing with a theme I noticed that changing item selection triggers drawing bugs with (selected_)item_pixmap_style images making use an alpha channel (i.e. partial or full transparency.

In the screenshots attached you can see a simple theme right after loading and after a few keypresses changing selection (<down>, <down>, <up> to be precise).
The screenshots show that the current rendering behavior does paint the (selected_)item_pixmap_style images on top of whatever was there before rather than re-painting that area from the ground up. (Any ideas why only part looks broken while the leftmost third remains looking sane?) The rendering order needed for both the item obtaining selection and the item losing selection in my eyes would be:

Background color
then background image
then (selected_)item_pixmap_style images
then text

I'll also attach the related theme.txt.
For the selected_item_pixmap_style, center/north/south are 30% opaque white, the others 100% opaque.
For the item_pixmap_style, all of them are 0% opaque.
Version of GRUB is 2.02~beta2.

I'm not sure if that's related but I noticed that function canvas_paint reads

if (canvas_area_status == GRUB_VIDEO_AREA_ENABLED)
grub_video_set_area_status (GRUB_VIDEO_AREA_ENABLED);

in Git. It looks to me like one of those should be _DISABLED, instead. True?

Would be cool to hear from you.

Best, Sebastian

Sebastian Pipping <hartwork>



Depends on the following items: None found

Items that depend on this one: None found


Carbon-Copy List
  • -email is unavailable- added by phcoder (Updated the item)
  • -email is unavailable- added by arvidjaar (Posted a comment)
  • -email is unavailable- added by hartwork (Submitted the item)

    Do you think this task is very important?
    If so, you can add your encouragement to it.
    This task has 0 encouragements so far.

    Only logged-in users can vote.




    Follow 4 latest changes.

    Date Changed by Updated Field Previous Value => Replaced by
    2016-03-02 phcoder Planned ReleaseNone => 2.03+
    2015-05-02 hartwork Attached File- => Added grub_gfxmenu_drawing_bug__just_loaded.png, #33870
        Attached File- => Added grub_gfxmenu_drawing_bug__down_down_up.png, #33871
        Attached File- => Added grub_gfxmenu_drawing_bug__theme.txt, #33872

    Back to the top

    Powered by Savane 3.3