fix refreshing

This commit is contained in:
☙◦ The Tablet ❀ GamerGirlandCo ◦❧ 2025-07-22 22:44:41 -04:00
parent a0fde4312e
commit a52d615006
3 changed files with 26 additions and 12 deletions

View File

@ -221,7 +221,7 @@ label_set_property (void *vself, const char *name, const char *value)
grub_get_datetime(&datetime); grub_get_datetime(&datetime);
//grub_gfxmenu_ //grub_gfxmenu_
char* valtmp = grub_strdup (value); char* valtmp = grub_strdup (value);
grub_snprintf(valtmp, 100, "%d-%02d-%02d %02d:%02d:%02d %s\n", grub_snprintf(valtmp, 100, "%d-%02d-%02d %02d:%02d:%02d %s",
datetime.year, datetime.month, datetime.day, datetime.year, datetime.month, datetime.day,
datetime.hour, datetime.minute, datetime.second, datetime.hour, datetime.minute, datetime.second,
grub_get_weekday_name(&datetime)); grub_get_weekday_name(&datetime));

View File

@ -275,21 +275,28 @@ static void redraw_time(grub_gfxmenu_view_t view)
struct grub_datetime datetime; struct grub_datetime datetime;
grub_get_datetime(&datetime); grub_get_datetime(&datetime);
char* valtmp = grub_strdup (self->text); char* valtmp = grub_strdup (self->text);
grub_snprintf(valtmp, 100, "%d-%02d-%02d %02d:%02d:%02d %s\n", grub_snprintf(valtmp, 100, "%d-%02d-%02d %02d:%02d:%02d %s",
datetime.year, datetime.month, datetime.day, datetime.year, datetime.month, datetime.day,
datetime.hour, datetime.minute, datetime.second, datetime.hour, datetime.minute, datetime.second,
grub_get_weekday_name(&datetime)); grub_get_weekday_name(&datetime));
grub_video_rect_t before_bounds; grub_video_rect_t before_bounds;
cur->self->ops->get_bounds (cur->self, &before_bounds); cur->self->ops->get_bounds (cur->self, &before_bounds);
grub_gfxmenu_view_redraw(view, &before_bounds); before_bounds.width += 100;
grub_free(self->text);
/* grub_free(self->text);
self->text = (char*)" "; self->text = (char*)" ";
grub_gfxmenu_view_redraw(view, &before_bounds); grub_gfxmenu_view_redraw(view, &before_bounds); */
self->text = valtmp;
self->text = valtmp;
grub_video_set_area_status (GRUB_VIDEO_AREA_DISABLED);
grub_gfxmenu_view_redraw(view, &before_bounds); grub_gfxmenu_view_redraw(view, &before_bounds);
grub_video_swap_buffers();
if(view->double_repaint) {
grub_video_set_area_status (GRUB_VIDEO_AREA_DISABLED);
grub_gfxmenu_view_redraw(view, &before_bounds);
}
// grub_video_set_area_status (GRUB_VIDEO_AREA_ENABLED);
} }

View File

@ -688,10 +688,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot, int *notify_boot)
while (1) while (1)
{ {
int c; int c;
if(has_second_elapsed (&time_saved_time)) {
menu_print_time();
}
timeout = grub_menu_get_timeout (); timeout = grub_menu_get_timeout ();
if (grub_normal_exit_level) if (grub_normal_exit_level)
@ -702,7 +699,10 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot, int *notify_boot)
timeout--; timeout--;
grub_menu_set_timeout (timeout); grub_menu_set_timeout (timeout);
menu_print_timeout (timeout); menu_print_timeout (timeout);
} menu_print_time();
} else if(has_second_elapsed (&time_saved_time)) {
menu_print_time();
}
if (timeout == 0) if (timeout == 0)
{ {
@ -730,12 +730,14 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot, int *notify_boot)
case GRUB_TERM_CTRL | 'a': case GRUB_TERM_CTRL | 'a':
current_entry = 0; current_entry = 0;
menu_set_chosen_entry (current_entry); menu_set_chosen_entry (current_entry);
continue;
break; break;
case GRUB_TERM_KEY_END: case GRUB_TERM_KEY_END:
case GRUB_TERM_CTRL | 'e': case GRUB_TERM_CTRL | 'e':
current_entry = menu->size - 1; current_entry = menu->size - 1;
menu_set_chosen_entry (current_entry); menu_set_chosen_entry (current_entry);
continue;
break; break;
case GRUB_TERM_KEY_UP: case GRUB_TERM_KEY_UP:
@ -744,6 +746,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot, int *notify_boot)
if (current_entry > 0) if (current_entry > 0)
current_entry--; current_entry--;
menu_set_chosen_entry (current_entry); menu_set_chosen_entry (current_entry);
continue;
break; break;
case GRUB_TERM_CTRL | 'n': case GRUB_TERM_CTRL | 'n':
@ -752,6 +755,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot, int *notify_boot)
if (current_entry < menu->size - 1) if (current_entry < menu->size - 1)
current_entry++; current_entry++;
menu_set_chosen_entry (current_entry); menu_set_chosen_entry (current_entry);
continue;
break; break;
case GRUB_TERM_CTRL | 'g': case GRUB_TERM_CTRL | 'g':
@ -761,6 +765,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot, int *notify_boot)
else else
current_entry -= GRUB_MENU_PAGE_SIZE; current_entry -= GRUB_MENU_PAGE_SIZE;
menu_set_chosen_entry (current_entry); menu_set_chosen_entry (current_entry);
continue;
break; break;
case GRUB_TERM_CTRL | 'c': case GRUB_TERM_CTRL | 'c':
@ -768,6 +773,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot, int *notify_boot)
if (grub_add (current_entry, GRUB_MENU_PAGE_SIZE, &current_entry) || current_entry >= menu->size) if (grub_add (current_entry, GRUB_MENU_PAGE_SIZE, &current_entry) || current_entry >= menu->size)
current_entry = menu->size - 1; current_entry = menu->size - 1;
menu_set_chosen_entry (current_entry); menu_set_chosen_entry (current_entry);
continue;
break; break;
case '\n': case '\n':
@ -815,6 +821,7 @@ run_menu (grub_menu_t menu, int nested, int *auto_boot, int *notify_boot)
*auto_boot = 0; *auto_boot = 0;
return entry; return entry;
} }
continue;
} }
break; break;
} }