function.
(GRUB_MOD_INIT): Register background_color command.
(GRUB_MOD_FINI): Unregister background_color command.
+
+ Fix border repainting.
+
+ * grub-core/term/gfxterm.c (dirty_region_add): When a repaint is
+ already scheduled, merge the virtual screen with the requested
+ region rather than repainting only the virtual screen.
if (repaint_scheduled)
{
- x = virtual_screen.offset_x;
- y = virtual_screen.offset_y;
- width = virtual_screen.width;
- height = virtual_screen.height;
+ if (x > (int)virtual_screen.offset_x)
+ {
+ width += virtual_screen.offset_x - x;
+ x = virtual_screen.offset_x;
+ }
+ if (y > (int)virtual_screen.offset_y)
+ {
+ height += virtual_screen.offset_y - y;
+ y = virtual_screen.offset_y;
+ }
+ if (width < virtual_screen.width)
+ width = virtual_screen.width;
+ if (height < virtual_screen.height)
+ height = virtual_screen.height;
repaint_scheduled = 0;
repaint_was_scheduled = 1;
}