diff --git a/src/menu.c b/src/menu.c index 664a8d3..41bdae7 100644 --- a/src/menu.c +++ b/src/menu.c @@ -242,7 +242,7 @@ char* run_main_menu(menu_state* state, nese_Components* comp, if (current >= 0) menu.cursor = current; } - // Don't let window refreshes interrupt us. + // Don't let window refreshes interrupt us (??? How) int status = run_menu(&menu, &files, 20, comp, cart); if (input_Result_Quit == status) { @@ -335,9 +335,15 @@ int modal_popup(const char* message, nese_Components* comp, if (x < 5) x = 5; if (y < 5) y = 5; - nes_draw_last_frame(comp->rend, NULL != cart->file); - nes_draw_text(comp->rend, message, x, y, color_error); - nes_draw_done(comp->rend); - return wait_for_input(comp); + int status = (input_Result_Refresh << 8); + while (input_Result_Refresh == (status >> 8)) { + nes_draw_last_frame(comp->rend, NULL != cart->file); + nes_draw_text(comp->rend, message, x, y, color_error); + nes_draw_done(comp->rend); + + status = wait_for_input(comp); + } + + return status; }