diff --git a/frontend/frontend.c b/frontend/frontend.c index 934cfe528b..9a3766bae7 100644 --- a/frontend/frontend.c +++ b/frontend/frontend.c @@ -279,6 +279,9 @@ int main_entry_iterate(signature(), args_type() args) g_extern.audio_active = false; } + while (menu_input()) + rarch_input_poll(); + // Restore libretro keyboard callback. g_extern.system.key_event = key_event; } diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index 8ed9bd2fcf..07ec7bd173 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -488,7 +488,7 @@ void menu_ticker_line(char *buf, size_t len, unsigned index, const char *str, bo } #ifdef HAVE_MENU -static uint64_t menu_input(void) +uint64_t menu_input(void) { unsigned i; uint64_t input_state = 0; diff --git a/frontend/menu/menu_common.h b/frontend/menu/menu_common.h index 94f927ea08..994d78c8e4 100644 --- a/frontend/menu/menu_common.h +++ b/frontend/menu/menu_common.h @@ -381,6 +381,8 @@ unsigned menu_type_is(unsigned type); void menu_key_event(bool down, unsigned keycode, uint32_t character, uint16_t key_modifiers); +uint64_t menu_input(void); + extern const menu_ctx_driver_t *menu_ctx; #ifdef __cplusplus