* grub-core/gfxmenu/gui_list.c: Refresh first_shown_entry value when
cached view is reused. * grub-core/gfxmenu/view.c: Call the refresh procedure for all open boot menus.
This commit is contained in:
parent
c53b4e67e4
commit
dc5a311a1e
4 changed files with 43 additions and 1 deletions
|
@ -236,6 +236,27 @@ update_menu_components (grub_gfxmenu_view_t view)
|
|||
update_menu_visit, view);
|
||||
}
|
||||
|
||||
static void
|
||||
refresh_menu_visit (grub_gui_component_t component,
|
||||
void *userdata)
|
||||
{
|
||||
grub_gfxmenu_view_t view;
|
||||
view = userdata;
|
||||
if (component->ops->is_instance (component, "list"))
|
||||
{
|
||||
grub_gui_list_t list = (grub_gui_list_t) component;
|
||||
list->ops->refresh_list (list, view);
|
||||
}
|
||||
}
|
||||
|
||||
/* Refresh list information (useful for submenus) */
|
||||
static void
|
||||
refresh_menu_components (grub_gfxmenu_view_t view)
|
||||
{
|
||||
grub_gui_iterate_recursively ((grub_gui_component_t) view->canvas,
|
||||
refresh_menu_visit, view);
|
||||
}
|
||||
|
||||
static void
|
||||
draw_message (grub_gfxmenu_view_t view)
|
||||
{
|
||||
|
@ -294,6 +315,7 @@ grub_gfxmenu_view_draw (grub_gfxmenu_view_t view)
|
|||
view->screen.x, view->screen.y,
|
||||
view->screen.width, view->screen.height);
|
||||
|
||||
refresh_menu_components (view);
|
||||
update_menu_components (view);
|
||||
|
||||
grub_gfxmenu_view_redraw (view, &view->screen);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue