(Overlay) Selecting an overlay goes back correctly to the preceding

settings list
This commit is contained in:
twinaphex 2017-01-01 01:34:28 +01:00
parent bed1db78aa
commit b10b70281b

View File

@ -75,6 +75,7 @@ enum
ACTION_OK_LOAD_CORE, ACTION_OK_LOAD_CORE,
ACTION_OK_LOAD_WALLPAPER, ACTION_OK_LOAD_WALLPAPER,
ACTION_OK_SET_PATH, ACTION_OK_SET_PATH,
ACTION_OK_SET_PATH_OVERLAY,
ACTION_OK_SET_DIRECTORY ACTION_OK_SET_DIRECTORY
}; };
@ -1151,6 +1152,19 @@ static int generic_action_ok(const char *path,
} }
} }
break; break;
case ACTION_OK_SET_PATH_OVERLAY:
flush_char = msg_hash_to_str(MENU_ENUM_LABEL_DEFERRED_ONSCREEN_OVERLAY_SETTINGS_LIST);
{
rarch_setting_t *setting = menu_setting_find(menu_label);
if (setting)
{
setting_set_with_string_representation(
setting, action_path);
ret = menu_setting_generic(setting, false);
}
}
break;
case ACTION_OK_SET_PATH: case ACTION_OK_SET_PATH:
flush_type = MENU_SETTINGS; flush_type = MENU_SETTINGS;
{ {
@ -1177,6 +1191,13 @@ error:
return menu_cbs_exit(); return menu_cbs_exit();
} }
static int action_ok_set_path_overlay(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx)
{
return generic_action_ok(path, label, type, idx, entry_idx,
ACTION_OK_SET_PATH_OVERLAY, MSG_UNKNOWN);
}
static int action_ok_set_path(const char *path, static int action_ok_set_path(const char *path,
const char *label, unsigned type, size_t idx, size_t entry_idx) const char *label, unsigned type, size_t idx, size_t entry_idx)
{ {
@ -4375,11 +4396,13 @@ static int menu_cbs_init_bind_ok_compare_type(menu_file_list_cbs_t *cbs,
} }
break; break;
case FILE_TYPE_FONT: case FILE_TYPE_FONT:
case FILE_TYPE_OVERLAY:
case FILE_TYPE_AUDIOFILTER: case FILE_TYPE_AUDIOFILTER:
case FILE_TYPE_VIDEOFILTER: case FILE_TYPE_VIDEOFILTER:
BIND_ACTION_OK(cbs, action_ok_set_path); BIND_ACTION_OK(cbs, action_ok_set_path);
break; break;
case FILE_TYPE_OVERLAY:
BIND_ACTION_OK(cbs, action_ok_set_path_overlay);
break;
case FILE_TYPE_IN_CARCHIVE: case FILE_TYPE_IN_CARCHIVE:
case FILE_TYPE_PLAIN: case FILE_TYPE_PLAIN:
if (cbs->enum_idx != MSG_UNKNOWN) if (cbs->enum_idx != MSG_UNKNOWN)