Remove unjustified hard dependency of normal.mod on gfxterm.

* include/grub/term.h (grub_term_output): New member fullscreen.
	* include/grub/gfxterm.h (grub_gfxterm_fullscreen): Removed.
	* grub-core/term/gfxterm.c (grub_gfxterm_fullscreen): Make static.
	(grub_gfxterm): Set .fullscreen.
	* grub-core/normal/menu.c (menu_init): Use fullscreen.
	* grub-core/gfxmenu/gfxmenu.c (GRUB_MOD_INIT): Likewise.
This commit is contained in:
Vladimir 'phcoder' Serbinenko 2012-05-21 22:17:11 +02:00
parent 37ed2c9b7e
commit 7086ad524f
6 changed files with 21 additions and 8 deletions

View file

@ -1,8 +1,19 @@
2012-05-21 Vladimir Serbinenko <phcoder@gmail.com>
Remove unjustified hard dependency of normal.mod on gfxterm.
* include/grub/term.h (grub_term_output): New member fullscreen.
* include/grub/gfxterm.h (grub_gfxterm_fullscreen): Removed.
* grub-core/term/gfxterm.c (grub_gfxterm_fullscreen): Make static.
(grub_gfxterm): Set .fullscreen.
* grub-core/normal/menu.c (menu_init): Use fullscreen.
* grub-core/gfxmenu/gfxmenu.c (GRUB_MOD_INIT): Likewise.
2012-05-21 Vladimir Serbinenko <phcoder@gmail.com> 2012-05-21 Vladimir Serbinenko <phcoder@gmail.com>
* docs/grub.texi (Internationalisation/Filesystems): Add precisions * docs/grub.texi (Internationalisation/Filesystems): Add precisions
mentioning possible problems with non-ASCII (non-compliant) ISOs. mentioning possible problems with non-ASCII (non-compliant) ISOs.
MEntion case-insensitive AFFS, SFS and JFS. Mention case-insensitive AFFS, SFS and JFS.
2012-05-21 Vladimir Serbinenko <phcoder@gmail.com> 2012-05-21 Vladimir Serbinenko <phcoder@gmail.com>

View file

@ -121,9 +121,9 @@ GRUB_MOD_INIT (gfxmenu)
struct grub_term_output *term; struct grub_term_output *term;
FOR_ACTIVE_TERM_OUTPUTS(term) FOR_ACTIVE_TERM_OUTPUTS(term)
if (grub_gfxmenu_try_hook && grub_strcmp (term->name, "gfxterm") == 0) if (grub_gfxmenu_try_hook && term->fullscreen)
{ {
grub_gfxterm_fullscreen (); term->fullscreen ();
break; break;
} }

View file

@ -349,7 +349,7 @@ menu_init (int entry, grub_menu_t menu, int nested)
int gfxmenu = 0; int gfxmenu = 0;
FOR_ACTIVE_TERM_OUTPUTS(term) FOR_ACTIVE_TERM_OUTPUTS(term)
if (grub_strcmp (term->name, "gfxterm") == 0) if (term->fullscreen)
{ {
if (grub_env_get ("theme")) if (grub_env_get ("theme"))
{ {
@ -376,7 +376,7 @@ menu_init (int entry, grub_menu_t menu, int nested)
grub_wait_after_message (); grub_wait_after_message ();
} }
grub_errno = GRUB_ERR_NONE; grub_errno = GRUB_ERR_NONE;
grub_gfxterm_fullscreen (); term->fullscreen ();
break; break;
} }

View file

@ -313,7 +313,7 @@ grub_gfxterm_set_window (struct grub_video_render_target *target,
return grub_errno; return grub_errno;
} }
grub_err_t static grub_err_t
grub_gfxterm_fullscreen (void) grub_gfxterm_fullscreen (void)
{ {
const char *font_name; const char *font_name;
@ -1242,6 +1242,7 @@ static struct grub_term_output grub_video_term =
.setcolorstate = grub_virtual_screen_setcolorstate, .setcolorstate = grub_virtual_screen_setcolorstate,
.setcursor = grub_gfxterm_setcursor, .setcursor = grub_gfxterm_setcursor,
.refresh = grub_gfxterm_refresh, .refresh = grub_gfxterm_refresh,
.fullscreen = grub_gfxterm_fullscreen,
.flags = GRUB_TERM_CODE_TYPE_VISUAL_GLYPHS, .flags = GRUB_TERM_CODE_TYPE_VISUAL_GLYPHS,
.normal_color = GRUB_TERM_DEFAULT_NORMAL_COLOR, .normal_color = GRUB_TERM_DEFAULT_NORMAL_COLOR,
.highlight_color = GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR, .highlight_color = GRUB_TERM_DEFAULT_HIGHLIGHT_COLOR,

View file

@ -37,8 +37,6 @@ void grub_gfxterm_set_repaint_callback (grub_gfxterm_repaint_callback_t func);
void EXPORT_FUNC (grub_gfxterm_schedule_repaint) (void); void EXPORT_FUNC (grub_gfxterm_schedule_repaint) (void);
grub_err_t EXPORT_FUNC (grub_gfxterm_fullscreen) (void);
extern void (*EXPORT_VAR (grub_gfxterm_decorator_hook)) (void); extern void (*EXPORT_VAR (grub_gfxterm_decorator_hook)) (void);
#endif /* ! GRUB_GFXTERM_HEADER */ #endif /* ! GRUB_GFXTERM_HEADER */

View file

@ -215,6 +215,9 @@ struct grub_term_output
/* Update the screen. */ /* Update the screen. */
void (*refresh) (struct grub_term_output *term); void (*refresh) (struct grub_term_output *term);
/* gfxterm only: put in fullscreen mode. */
grub_err_t (*fullscreen) (void);
/* The feature flags defined above. */ /* The feature flags defined above. */
grub_uint32_t flags; grub_uint32_t flags;