* grub-core/gfxmenu/gui_list.c (draw_scrollbar): Fixed rare

occasional bug. If there are too many boot entries or too low
       scrollbar height then we need to use another formula to calculate
       the position and size of the scrollbar thumb.
This commit is contained in:
Vladimir Testov 2013-10-08 18:49:35 +04:00
parent de300af2ac
commit 53a5f5c2f0
2 changed files with 14 additions and 0 deletions

View file

@ -1,3 +1,10 @@
2013-10-08 Vladimir Testov <vladimir.testov@rosalab.ru>
* grub-core/gfxmenu/gui_list.c (draw_scrollbar): Fixed rare
occasional bug. If there are too many boot entries or too low
scrollbar height then we need to use another formula to calculate
the position and size of the scrollbar thumb.
2013-10-08 Vladimir Serbinenko <phcoder@gmail.com>
* util/random_unix.c: Add NetBSD and Mac OS X to verified list.

View file

@ -219,6 +219,13 @@ draw_scrollbar (list_impl_t self,
tracklen);
int thumby = tracktop + tracklen * (value - min) / (max - min);
int thumbheight = tracklen * extent / (max - min) + 1;
/* Rare occasion: too many entries or too low height. */
if (thumbheight < thumb_vertical_pad)
{
thumbheight = thumb_vertical_pad;
thumby = tracktop + ((tracklen - thumb_vertical_pad) * (value - min)
/ (max - extent));
}
thumb->set_content_size (thumb,
scrollbar_width - frame_horizontal_pad
- thumb_horizontal_pad,