mirror of
https://github.com/libretro/RetroArch
synced 2025-03-02 19:13:34 +00:00
Reimplement deferred_push_settings
This commit is contained in:
parent
ac8093ecbf
commit
0fd812049c
@ -130,7 +130,7 @@ void menu_entries_pop_list(file_list_t *list)
|
||||
}
|
||||
}
|
||||
|
||||
static int setting_set_flags(rarch_setting_t *setting)
|
||||
int setting_set_flags(rarch_setting_t *setting)
|
||||
{
|
||||
if (setting->flags & SD_FLAG_ALLOW_INPUT)
|
||||
return MENU_FILE_LINEFEED;
|
||||
@ -223,22 +223,6 @@ int push_list(menu_handle_t *menu,
|
||||
setting->name, setting_set_flags(setting), 0);
|
||||
}
|
||||
}
|
||||
else if (!strcmp(label, "settings"))
|
||||
{
|
||||
settings_list_free(menu->list_settings);
|
||||
menu->list_settings = (rarch_setting_t *)setting_data_new(SL_FLAG_ALL_SETTINGS);
|
||||
rarch_setting_t *setting = (rarch_setting_t*)setting_data_find_setting(menu->list_settings,
|
||||
"Driver Options");
|
||||
|
||||
file_list_clear(list);
|
||||
|
||||
for (; setting->type != ST_NONE; setting++)
|
||||
{
|
||||
if (setting->type == ST_GROUP)
|
||||
file_list_push(list, setting->short_description,
|
||||
setting->name, setting_set_flags(setting), 0);
|
||||
}
|
||||
}
|
||||
else if (!strcmp(label, "Input Options"))
|
||||
{
|
||||
settings_list_free(menu->list_settings);
|
||||
|
@ -54,6 +54,8 @@ void entries_refresh(file_list_t *list);
|
||||
|
||||
void menu_build_scroll_indices(file_list_t *list);
|
||||
|
||||
int setting_set_flags(rarch_setting_t *setting);
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
@ -1512,7 +1512,24 @@ static int deferred_push_settings(void *data, void *userdata,
|
||||
if (!list || !menu_list)
|
||||
return -1;
|
||||
|
||||
return push_list(driver.menu, list, path, label, type);
|
||||
settings_list_free(driver.menu->list_settings);
|
||||
driver.menu->list_settings = (rarch_setting_t *)setting_data_new(SL_FLAG_ALL_SETTINGS);
|
||||
rarch_setting_t *setting = (rarch_setting_t*)setting_data_find_setting(driver.menu->list_settings,
|
||||
"Driver Options");
|
||||
|
||||
file_list_clear(list);
|
||||
|
||||
for (; setting->type != ST_NONE; setting++)
|
||||
{
|
||||
if (setting->type == ST_GROUP)
|
||||
file_list_push(list, setting->short_description,
|
||||
setting->name, setting_set_flags(setting), 0);
|
||||
}
|
||||
|
||||
if (driver.menu_ctx && driver.menu_ctx->populate_entries)
|
||||
driver.menu_ctx->populate_entries(driver.menu, path, label, type);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int deferred_push_category(void *data, void *userdata,
|
||||
|
Loading…
x
Reference in New Issue
Block a user