* grub-core/term/gfxterm.c (dirty_region_add): Move core part to ...

(dirty_region_add_real): ... this.
	(dirty_region_add): Don't discard margin refresh when performing
	scheduled repaint.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2011-03-29 08:33:28 +02:00
parent a1dc717c58
commit ed5587afea
2 changed files with 24 additions and 14 deletions

View file

@ -1,3 +1,10 @@
2011-03-29 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/term/gfxterm.c (dirty_region_add): Move core part to ...
(dirty_region_add_real): ... this.
(dirty_region_add): Don't discard margin refresh when performing
scheduled repaint.
2011-03-29 Vladimir Serbinenko <phcoder@gmail.com> 2011-03-29 Vladimir Serbinenko <phcoder@gmail.com>
* grub-core/lib/relocator.c (allocate_regstart) * grub-core/lib/relocator.c (allocate_regstart)

View file

@ -532,21 +532,8 @@ dirty_region_is_empty (void)
} }
static void static void
dirty_region_add (int x, int y, unsigned int width, unsigned int height) dirty_region_add_real (int x, int y, unsigned int width, unsigned int height)
{ {
if ((width == 0) || (height == 0))
return;
if (repaint_scheduled)
{
x = virtual_screen.offset_x;
y = virtual_screen.offset_y;
width = virtual_screen.width;
height = virtual_screen.height;
repaint_scheduled = 0;
repaint_was_scheduled = 1;
}
if (dirty_region_is_empty ()) if (dirty_region_is_empty ())
{ {
dirty_region.top_left_x = x; dirty_region.top_left_x = x;
@ -567,6 +554,22 @@ dirty_region_add (int x, int y, unsigned int width, unsigned int height)
} }
} }
static void
dirty_region_add (int x, int y, unsigned int width, unsigned int height)
{
if ((width == 0) || (height == 0))
return;
if (repaint_scheduled)
{
dirty_region_add_real (virtual_screen.offset_x, virtual_screen.offset_y,
virtual_screen.width, virtual_screen.height);
repaint_scheduled = 0;
repaint_was_scheduled = 1;
}
dirty_region_add_real (x, y, width, height);
}
static void static void
dirty_region_add_virtualscreen (void) dirty_region_add_virtualscreen (void)
{ {