grub-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[PATCH 2/2] Fix font color not set for booting message


From: Michael Chang
Subject: [PATCH 2/2] Fix font color not set for booting message
Date: Fri, 7 Sep 2012 17:08:15 +0800

The set color_normal= is not applied to booting message for loading
kernel and initrd. It seems like the user terminal font color is
errnously reset to default when performing new screen setup.

This patch tries to fix the issue by setting default value during
structure initialize and not resetting afterwards. This ensures
persistence of user's setting to terminal's font color.

Signed-off-by: Michael Chang <address@hidden>
---
 grub-core/term/gfxterm.c |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/grub-core/term/gfxterm.c b/grub-core/term/gfxterm.c
index ecb8e22..b978b27 100644
--- a/grub-core/term/gfxterm.c
+++ b/grub-core/term/gfxterm.c
@@ -113,7 +113,7 @@ static struct grub_video_render_target *render_target;
 void (*grub_gfxterm_decorator_hook) (void) = NULL;
 struct grub_video_bitmap *bitmap_hook = NULL;
 static struct grub_gfxterm_window window;
-static struct grub_virtual_screen virtual_screen;
+static struct grub_virtual_screen virtual_screen = { .term_color = 
GRUB_TERM_DEFAULT_NORMAL_COLOR };
 static grub_gfxterm_repaint_callback_t repaint_callback;
 static int repaint_scheduled = 0;
 static int repaint_was_scheduled = 0;
@@ -187,13 +187,19 @@ clear_char (struct grub_colored_char *c)
 static void
 grub_virtual_screen_free (void)
 {
+  grub_uint8_t saved_term_color;
+
   /* If virtual screen has been allocated, free it.  */
   if (virtual_screen.text_buffer != 0)
     grub_free (virtual_screen.text_buffer);
 
+  saved_term_color = virtual_screen.term_color;
+
   /* Reset virtual screen data.  */
   grub_memset (&virtual_screen, 0, sizeof (virtual_screen));
 
+  virtual_screen.term_color = saved_term_color;
+
   /* Free render targets.  */
   grub_video_delete_render_target (text_layer);
   text_layer = 0;
@@ -254,8 +260,6 @@ grub_virtual_screen_setup (unsigned int x, unsigned int y,
 
   virtual_screen.standard_color_setting = DEFAULT_STANDARD_COLOR;
 
-  virtual_screen.term_color = GRUB_TERM_DEFAULT_NORMAL_COLOR;
-
   set_term_color (virtual_screen.term_color);
 
   grub_video_set_active_render_target (render_target);
-- 
1.7.3.4




reply via email to

[Prev in Thread] Current Thread [Next in Thread]