]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
menu_entry: Disable cursor during update_screen()
authorThomas Huth <thuth@redhat.com>
Fri, 29 Jan 2016 14:26:58 +0000 (15:26 +0100)
committerAndrei Borzenkov <arvidjaar@gmail.com>
Mon, 22 Feb 2016 06:59:27 +0000 (09:59 +0300)
When running grub in a VGA console of a KVM pseries guest on PowerPC,
you can see the cursor sweeping over the whole line when entering a
character in editor mode. This is visible because grub always refreshes
the whole line when entering a character in editor mode, and drawing
characters is quite a slow operation with the firmware used for the
powerpc pseries guests (SLOF).
To avoid this ugliness, the cursor should be disabled when refreshing
the screen contents during update_screen().

Signed-off-by: Thomas Huth <thuth@redhat.com>
grub-core/normal/menu_entry.c

index b80d161dd92ca66854a153d6c93e66f7c0e50b8d..eeeee5580abea9798278ef85cf417366cf4f0e0a 100644 (file)
@@ -254,6 +254,8 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen,
       mode = ALL_LINES;
     }
 
+  grub_term_setcursor (term_screen->term, 0);
+
   if (mode != NO_LINE)
     {
       /* Draw lines. This code is tricky, because this must calculate logical
@@ -361,6 +363,8 @@ update_screen (struct screen *screen, struct per_term_screen *term_screen,
 
     }
 
+  grub_term_setcursor (term_screen->term, 1);
+
   grub_term_refresh (term_screen->term);
 }