view->nested = nested;
view->first_timeout = -1;
+ grub_video_set_viewport (0, 0, mode_info.width, mode_info.height);
+ if (view->double_repaint)
+ {
+ grub_video_swap_buffers ();
+ grub_video_set_viewport (0, 0, mode_info.width, mode_info.height);
+ }
+
grub_gfxmenu_view_draw (view);
instance->data = view;
draw_cursor (0);
grub_video_set_active_render_target (render_target);
- /* Save viewport and set it to our window. */
- grub_video_get_viewport ((unsigned *) &saved_view.x,
- (unsigned *) &saved_view.y,
- (unsigned *) &saved_view.width,
- (unsigned *) &saved_view.height);
- grub_video_set_viewport (window.x, window.y, window.width, window.height);
i = window.double_repaint ? 2 : 1;
while (i--)
{
+ /* Save viewport and set it to our window. */
+ grub_video_get_viewport ((unsigned *) &saved_view.x,
+ (unsigned *) &saved_view.y,
+ (unsigned *) &saved_view.width,
+ (unsigned *) &saved_view.height);
+
+ grub_video_set_viewport (window.x, window.y, window.width,
+ window.height);
+
/* Clear new border area. */
grub_video_fill_rect (color,
virtual_screen.offset_x,
grub_video_scroll (color, 0, -virtual_screen.normal_char_height
* virtual_screen.total_scroll);
+ /* Restore saved viewport. */
+ grub_video_set_viewport (saved_view.x, saved_view.y,
+ saved_view.width, saved_view.height);
+
if (i)
grub_video_swap_buffers ();
}
grub_video_scroll (color, 0, -virtual_screen.normal_char_height
* virtual_screen.total_scroll);
- /* Restore saved viewport. */
- grub_video_set_viewport (saved_view.x, saved_view.y,
- saved_view.width, saved_view.height);
grub_video_set_active_render_target (render_target);
}