diff --git a/menu/menu.c b/menu/menu.c index fd9866d97a..0a90cf50df 100644 --- a/menu/menu.c +++ b/menu/menu.c @@ -258,21 +258,6 @@ void menu_free(menu_handle_t *menu) free(menu); } -int menu_refresh(void) -{ - menu_handle_t *menu = menu_driver_get_ptr(); - if (!menu->need_refresh) - return -1; - if (menu->nonblocking_refresh) - return -1; - if (menu->input.joypad == MENU_ACTION_MESSAGE) - return -1; - - menu_entry_iterate(MENU_ACTION_REFRESH); - - return 0; -} - /** * menu_iterate: * @input : input sample for this frame @@ -290,6 +275,7 @@ int menu_iterate(retro_input_t input, static retro_time_t last_clock_update = 0; int32_t ret = 0; unsigned action = 0; + runloop_t *runloop = rarch_main_get_ptr(); menu_handle_t *menu = menu_driver_get_ptr(); settings_t *settings = config_get_ptr(); @@ -311,8 +297,16 @@ int menu_iterate(retro_input_t input, action = menu->input.joypad; + if (menu->need_refresh && !menu->nonblocking_refresh && action != MENU_ACTION_MESSAGE) + action = MENU_ACTION_REFRESH; + menu_entry_iterate(action); + if (runloop->is_menu && !runloop->is_idle) + menu_display_fb(); + + menu_driver_set_texture(); + if (ret) return -1; diff --git a/menu/menu.h b/menu/menu.h index 9d563fafe1..577713391e 100644 --- a/menu/menu.h +++ b/menu/menu.h @@ -154,8 +154,6 @@ typedef enum **/ void *menu_init(const void *data); -int menu_refresh(void); - /** * menu_iterate: * @input : input sample for this frame diff --git a/menu/menu_display.c b/menu/menu_display.c index c7fae9277d..14d879e1a6 100644 --- a/menu/menu_display.c +++ b/menu/menu_display.c @@ -206,13 +206,3 @@ void menu_display_unset_viewport(void) video_driver_set_viewport(global->video_data.width, global->video_data.height, false, true); } - -void menu_display_frame(void) -{ - runloop_t *runloop = rarch_main_get_ptr(); - - if (runloop->is_menu && !runloop->is_idle) - menu_display_fb(); - - menu_driver_set_texture(); -} diff --git a/menu/menu_display.h b/menu/menu_display.h index 8aeb10b6bb..c80ffd6d9c 100644 --- a/menu/menu_display.h +++ b/menu/menu_display.h @@ -54,8 +54,6 @@ void menu_display_set_viewport(void); void menu_display_unset_viewport(void); -void menu_display_frame(void); - #ifdef __cplusplus } #endif diff --git a/runloop.c b/runloop.c index 24919fbfdd..5a68951982 100644 --- a/runloop.c +++ b/runloop.c @@ -29,7 +29,6 @@ #ifdef HAVE_MENU #include "menu/menu.h" -#include "menu/menu_display.h" #endif #ifdef HAVE_NETPLAY @@ -1114,20 +1113,15 @@ int rarch_main_iterate(void) rarch_main_data_iterate(); #ifdef HAVE_MENU - if (menu_refresh() == -1) - { - if (runloop->is_menu) - { - if (menu_iterate(input, old_input, trigger_input) == -1) - rarch_main_set_state(RARCH_ACTION_STATE_MENU_RUNNING_FINISHED); - } - } - if (runloop->is_menu) { + menu_handle_t *menu = menu_driver_get_ptr(); + if (menu) + if (menu_iterate(input, old_input, trigger_input) == -1) + rarch_main_set_state(RARCH_ACTION_STATE_MENU_RUNNING_FINISHED); + if (!input && settings->menu.pause_libretro) - ret = 1; - menu_display_frame(); + ret = 1; goto success; } #endif