diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 0fd49a8656..658006b5ab 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -346,21 +346,12 @@ int menu_driver_pointer_tap(unsigned x, unsigned y, unsigned ptr, menu_file_list_cbs_t *cbs, menu_entry_t *entry, unsigned action) { - int ret = 0; const menu_ctx_driver_t *driver = menu_driver_ctx; if (driver->pointer_tap) - ret = driver->pointer_tap(menu_userdata ? menu_userdata : NULL, x, y, ptr, cbs, entry, action); + return driver->pointer_tap(menu_userdata ? menu_userdata : NULL, x, y, ptr, cbs, entry, action); - return ret; -} - -void menu_driver_navigation_clear(bool pending_push) -{ - const menu_ctx_driver_t *driver = menu_driver_ctx; - - if (driver->navigation_clear) - driver->navigation_clear(menu_userdata ? menu_userdata : NULL, pending_push); + return 0; } static void menu_environment_get(int *argc, char *argv[], @@ -806,6 +797,16 @@ bool menu_driver_ctl(enum rarch_menu_ctl_state state, void *data) driver->navigation_descend_alphabet(menu_userdata, ptr_out); } break; + case RARCH_MENU_CTL_NAVIGATION_CLEAR: + { + bool *pending_push = (bool*)data; + + if (!pending_push) + return false; + if (driver->navigation_clear) + driver->navigation_clear(menu_userdata ? menu_userdata : NULL, pending_push); + } + break; case RARCH_MENU_CTL_POPULATE_ENTRIES: { menu_displaylist_info_t *info = (menu_displaylist_info_t*)data; diff --git a/menu/menu_driver.h b/menu/menu_driver.h index d0732ca386..a88a0edda6 100644 --- a/menu/menu_driver.h +++ b/menu/menu_driver.h @@ -94,6 +94,7 @@ enum rarch_menu_ctl_state RARCH_MENU_CTL_NAVIGATION_INCREMENT, RARCH_MENU_CTL_NAVIGATION_DECREMENT, RARCH_MENU_CTL_NAVIGATION_SET, + RARCH_MENU_CTL_NAVIGATION_CLEAR, RARCH_MENU_CTL_NAVIGATION_SET_LAST, RARCH_MENU_CTL_NAVIGATION_ASCEND_ALPHABET, RARCH_MENU_CTL_NAVIGATION_DESCEND_ALPHABET, @@ -384,8 +385,6 @@ int menu_driver_pointer_tap(unsigned x, unsigned y, unsigned ptr, void menu_driver_list_insert(file_list_t *list, const char *path, const char *label, size_t idx); -void menu_driver_navigation_clear(bool pending_push); - /* HACK */ extern unsigned int rdb_entry_start_game_selection_ptr; diff --git a/menu/menu_navigation.c b/menu/menu_navigation.c index d977b7f235..6cc65ff6ab 100644 --- a/menu/menu_navigation.c +++ b/menu/menu_navigation.c @@ -67,14 +67,10 @@ bool menu_navigation_ctl(enum menu_navigation_ctl_state state, void *data) { size_t idx = 0; bool scroll = true; - bool *pending_push = (bool*)data; - - if (!pending_push) - return false; menu_navigation_ctl(MENU_NAVIGATION_CTL_SET_SELECTION, &idx); menu_navigation_ctl(MENU_NAVIGATION_CTL_SET, &scroll); - menu_driver_navigation_clear(*pending_push); + menu_driver_ctl(RARCH_MENU_CTL_NAVIGATION_CLEAR, data); } return true; case MENU_NAVIGATION_CTL_INCREMENT: