Apparently it is the case.

Please test/apply.

Thanks

Michal
=== modified file 'video/fb/video_fb.c'
--- video/fb/video_fb.c	2010-02-03 00:24:07 +0000
+++ video/fb/video_fb.c	2010-02-16 23:44:09 +0000
@@ -985,6 +985,13 @@ grub_video_fb_scroll (grub_video_color_t
       linedelta = target.mode_info->pitch
 	- width * target.mode_info->bytes_per_pixel;
       linelen = width * target.mode_info->bytes_per_pixel;
+      if (dy > 0 || (dy == 0 && dx > 0))
+        {
+          src_x += width - 1;
+          dst_x += width - 1;
+          src_y += height - 1;
+          dst_y += height - 1;
+        }
 #define DO_SCROLL                                                    \
       /* Check vertical direction of the move.  */                   \
       if (dy < 0 || (dy == 0 && dx < 0))                             \
@@ -1006,11 +1013,9 @@ grub_video_fb_scroll (grub_video_color_t
 	{                                                            \
 	  /* 3b. Move data downwards.  */                            \
 	  dst = (void *) grub_video_fb_get_video_ptr (&target,	     \
-					     dst_x + width - 1,      \
-					     dst_y + height - 1);    \
+						      dst_x, dst_y); \
 	  src = (void *) grub_video_fb_get_video_ptr (&target,	     \
-					     src_x + width - 1,      \
-					     src_y + height - 1);    \
+						      src_x, src_y); \
 	  for (j = 0; j < height; j++)                               \
 	    {                                                        \
 	      for (i = 0; i < linelen; i++)                          \

_______________________________________________
Grub-devel mailing list
Grub-devel@gnu.org
http://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to