* grub-core/gfxmenu/gfxmenu.c (grub_gfxmenu_try): Allow specifying
the theme path relative to $prefix/themes.
This commit is contained in:
parent
cff501187c
commit
7391c4d5ac
2 changed files with 20 additions and 2 deletions
|
@ -1,3 +1,8 @@
|
||||||
|
2013-05-03 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
|
* grub-core/gfxmenu/gfxmenu.c (grub_gfxmenu_try): Allow specifying
|
||||||
|
the theme path relative to $prefix/themes.
|
||||||
|
|
||||||
2013-05-03 Vladimir Serbinenko <phcoder@gmail.com>
|
2013-05-03 Vladimir Serbinenko <phcoder@gmail.com>
|
||||||
|
|
||||||
* grub-core/video/fb/fbblit.c (grub_video_fbblit_blend_BGR888_RGBA8888):
|
* grub-core/video/fb/fbblit.c (grub_video_fbblit_blend_BGR888_RGBA8888):
|
||||||
|
|
|
@ -53,6 +53,7 @@ grub_gfxmenu_try (int entry, grub_menu_t menu, int nested)
|
||||||
{
|
{
|
||||||
grub_gfxmenu_view_t view = NULL;
|
grub_gfxmenu_view_t view = NULL;
|
||||||
const char *theme_path;
|
const char *theme_path;
|
||||||
|
char *full_theme_path = 0;
|
||||||
struct grub_menu_viewer *instance;
|
struct grub_menu_viewer *instance;
|
||||||
grub_err_t err;
|
grub_err_t err;
|
||||||
struct grub_video_mode_info mode_info;
|
struct grub_video_mode_info mode_info;
|
||||||
|
@ -70,15 +71,27 @@ grub_gfxmenu_try (int entry, grub_menu_t menu, int nested)
|
||||||
if (err)
|
if (err)
|
||||||
return err;
|
return err;
|
||||||
|
|
||||||
if (!cached_view || grub_strcmp (cached_view->theme_path, theme_path) != 0
|
if (theme_path[0] != '/' && theme_path[0] != '(')
|
||||||
|
{
|
||||||
|
const char *prefix;
|
||||||
|
prefix = grub_env_get ("prefix");
|
||||||
|
full_theme_path = grub_xasprintf ("%s/themes/%s",
|
||||||
|
prefix,
|
||||||
|
theme_path);
|
||||||
|
}
|
||||||
|
|
||||||
|
if (!cached_view || grub_strcmp (cached_view->theme_path,
|
||||||
|
full_theme_path ? : theme_path) != 0
|
||||||
|| cached_view->screen.width != mode_info.width
|
|| cached_view->screen.width != mode_info.width
|
||||||
|| cached_view->screen.height != mode_info.height)
|
|| cached_view->screen.height != mode_info.height)
|
||||||
{
|
{
|
||||||
grub_free (cached_view);
|
grub_free (cached_view);
|
||||||
/* Create the view. */
|
/* Create the view. */
|
||||||
cached_view = grub_gfxmenu_view_new (theme_path, mode_info.width,
|
cached_view = grub_gfxmenu_view_new (full_theme_path ? : theme_path,
|
||||||
|
mode_info.width,
|
||||||
mode_info.height);
|
mode_info.height);
|
||||||
}
|
}
|
||||||
|
grub_free (full_theme_path);
|
||||||
|
|
||||||
if (! cached_view)
|
if (! cached_view)
|
||||||
{
|
{
|
||||||
|
|
Loading…
Reference in a new issue