Add RARCH_MENU_CTL_NAVIGATION_CLEAR

This commit is contained in:
twinaphex 2015-12-12 23:40:25 +01:00
parent 5e1390bb5a
commit ebe3454969
3 changed files with 14 additions and 18 deletions

View File

@ -346,21 +346,12 @@ int menu_driver_pointer_tap(unsigned x, unsigned y, unsigned ptr,
menu_file_list_cbs_t *cbs, menu_file_list_cbs_t *cbs,
menu_entry_t *entry, unsigned action) menu_entry_t *entry, unsigned action)
{ {
int ret = 0;
const menu_ctx_driver_t *driver = menu_driver_ctx; const menu_ctx_driver_t *driver = menu_driver_ctx;
if (driver->pointer_tap) 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; return 0;
}
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);
} }
static void menu_environment_get(int *argc, char *argv[], 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); driver->navigation_descend_alphabet(menu_userdata, ptr_out);
} }
break; 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: case RARCH_MENU_CTL_POPULATE_ENTRIES:
{ {
menu_displaylist_info_t *info = (menu_displaylist_info_t*)data; menu_displaylist_info_t *info = (menu_displaylist_info_t*)data;

View File

@ -94,6 +94,7 @@ enum rarch_menu_ctl_state
RARCH_MENU_CTL_NAVIGATION_INCREMENT, RARCH_MENU_CTL_NAVIGATION_INCREMENT,
RARCH_MENU_CTL_NAVIGATION_DECREMENT, RARCH_MENU_CTL_NAVIGATION_DECREMENT,
RARCH_MENU_CTL_NAVIGATION_SET, RARCH_MENU_CTL_NAVIGATION_SET,
RARCH_MENU_CTL_NAVIGATION_CLEAR,
RARCH_MENU_CTL_NAVIGATION_SET_LAST, RARCH_MENU_CTL_NAVIGATION_SET_LAST,
RARCH_MENU_CTL_NAVIGATION_ASCEND_ALPHABET, RARCH_MENU_CTL_NAVIGATION_ASCEND_ALPHABET,
RARCH_MENU_CTL_NAVIGATION_DESCEND_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, void menu_driver_list_insert(file_list_t *list, const char *path,
const char *label, size_t idx); const char *label, size_t idx);
void menu_driver_navigation_clear(bool pending_push);
/* HACK */ /* HACK */
extern unsigned int rdb_entry_start_game_selection_ptr; extern unsigned int rdb_entry_start_game_selection_ptr;

View File

@ -67,14 +67,10 @@ bool menu_navigation_ctl(enum menu_navigation_ctl_state state, void *data)
{ {
size_t idx = 0; size_t idx = 0;
bool scroll = true; 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_SELECTION, &idx);
menu_navigation_ctl(MENU_NAVIGATION_CTL_SET, &scroll); 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; return true;
case MENU_NAVIGATION_CTL_INCREMENT: case MENU_NAVIGATION_CTL_INCREMENT: