mirror of
https://github.com/libretro/RetroArch
synced 2025-03-03 13:14:04 +00:00
Merge pull request #9916 from jdgleaver/filebrowser-fix
(Filebrowser) Fix file selection issues when starting from (or navigating to) the top level directory
This commit is contained in:
commit
5f1fcf51a6
@ -483,7 +483,7 @@ static int frontend_ctr_parse_drive_list(void* data, bool load_content)
|
|||||||
file_list_t* list = (file_list_t*)data;
|
file_list_t* list = (file_list_t*)data;
|
||||||
enum msg_hash_enums enum_idx = load_content
|
enum msg_hash_enums enum_idx = load_content
|
||||||
? MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR
|
? MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR
|
||||||
: MSG_UNKNOWN;
|
: MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -734,7 +734,7 @@ static int frontend_darwin_parse_drive_list(void *data, bool load_content)
|
|||||||
CFBundleRef bundle = CFBundleGetMainBundle();
|
CFBundleRef bundle = CFBundleGetMainBundle();
|
||||||
enum msg_hash_enums enum_idx = load_content ?
|
enum msg_hash_enums enum_idx = load_content ?
|
||||||
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
MSG_UNKNOWN;
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
|
|
||||||
bundle_url = CFBundleCopyBundleURL(bundle);
|
bundle_url = CFBundleCopyBundleURL(bundle);
|
||||||
bundle_path = CFURLCopyPath(bundle_url);
|
bundle_path = CFURLCopyPath(bundle_url);
|
||||||
|
@ -481,7 +481,7 @@ static int frontend_gx_parse_drive_list(void *data, bool load_content)
|
|||||||
file_list_t *list = (file_list_t*)data;
|
file_list_t *list = (file_list_t*)data;
|
||||||
enum msg_hash_enums enum_idx = load_content ?
|
enum msg_hash_enums enum_idx = load_content ?
|
||||||
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
MSG_UNKNOWN;
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
#ifdef HW_RVL
|
#ifdef HW_RVL
|
||||||
menu_entries_append_enum(list,
|
menu_entries_append_enum(list,
|
||||||
"sd:/",
|
"sd:/",
|
||||||
|
@ -329,7 +329,7 @@ static int frontend_orbis_parse_drive_list(void *data, bool load_content)
|
|||||||
file_list_t *list = (file_list_t*)data;
|
file_list_t *list = (file_list_t*)data;
|
||||||
enum msg_hash_enums enum_idx = load_content ?
|
enum msg_hash_enums enum_idx = load_content ?
|
||||||
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
MSG_UNKNOWN;
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
|
|
||||||
menu_entries_append_enum(list,
|
menu_entries_append_enum(list,
|
||||||
"host0:app",
|
"host0:app",
|
||||||
|
@ -341,7 +341,7 @@ static int frontend_ps2_parse_drive_list(void *data, bool load_content)
|
|||||||
file_list_t *list = (file_list_t*)data;
|
file_list_t *list = (file_list_t*)data;
|
||||||
enum msg_hash_enums enum_idx = load_content ?
|
enum msg_hash_enums enum_idx = load_content ?
|
||||||
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
MSG_UNKNOWN;
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
|
|
||||||
menu_entries_append_enum(list,
|
menu_entries_append_enum(list,
|
||||||
rootDevicePath(BOOT_DEVICE_MC0),
|
rootDevicePath(BOOT_DEVICE_MC0),
|
||||||
|
@ -528,7 +528,7 @@ static int frontend_ps3_parse_drive_list(void *data, bool load_content)
|
|||||||
file_list_t *list = (file_list_t*)data;
|
file_list_t *list = (file_list_t*)data;
|
||||||
enum msg_hash_enums enum_idx = load_content ?
|
enum msg_hash_enums enum_idx = load_content ?
|
||||||
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
MSG_UNKNOWN;
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
|
|
||||||
menu_entries_append_enum(list,
|
menu_entries_append_enum(list,
|
||||||
"/app_home/",
|
"/app_home/",
|
||||||
|
@ -449,7 +449,7 @@ static int frontend_psp_parse_drive_list(void *data, bool load_content)
|
|||||||
file_list_t *list = (file_list_t*)data;
|
file_list_t *list = (file_list_t*)data;
|
||||||
enum msg_hash_enums enum_idx = load_content ?
|
enum msg_hash_enums enum_idx = load_content ?
|
||||||
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
MSG_UNKNOWN;
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
|
|
||||||
#ifdef VITA
|
#ifdef VITA
|
||||||
menu_entries_append_enum(list,
|
menu_entries_append_enum(list,
|
||||||
|
@ -801,7 +801,7 @@ static int frontend_switch_parse_drive_list(void *data, bool load_content)
|
|||||||
file_list_t *list = (file_list_t *)data;
|
file_list_t *list = (file_list_t *)data;
|
||||||
enum msg_hash_enums enum_idx = load_content
|
enum msg_hash_enums enum_idx = load_content
|
||||||
? MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR
|
? MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR
|
||||||
: MSG_UNKNOWN;
|
: MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -1923,7 +1923,7 @@ static int frontend_unix_parse_drive_list(void *data, bool load_content)
|
|||||||
file_list_t *list = (file_list_t*)data;
|
file_list_t *list = (file_list_t*)data;
|
||||||
enum msg_hash_enums enum_idx = load_content ?
|
enum msg_hash_enums enum_idx = load_content ?
|
||||||
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
MSG_UNKNOWN;
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
|
|
||||||
#ifdef ANDROID
|
#ifdef ANDROID
|
||||||
if (!string_is_empty(internal_storage_path))
|
if (!string_is_empty(internal_storage_path))
|
||||||
|
@ -277,7 +277,7 @@ static int frontend_uwp_parse_drive_list(void *data, bool load_content)
|
|||||||
file_list_t *list = (file_list_t*)data;
|
file_list_t *list = (file_list_t*)data;
|
||||||
enum msg_hash_enums enum_idx = load_content ?
|
enum msg_hash_enums enum_idx = load_content ?
|
||||||
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
MSG_UNKNOWN;
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
char drive[] = " :\\";
|
char drive[] = " :\\";
|
||||||
char *home_dir = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
|
char *home_dir = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
|
||||||
bool have_any_drives = false;
|
bool have_any_drives = false;
|
||||||
|
@ -173,7 +173,7 @@ static int frontend_wiiu_parse_drive_list(void *data, bool load_content)
|
|||||||
file_list_t *list = (file_list_t *)data;
|
file_list_t *list = (file_list_t *)data;
|
||||||
enum msg_hash_enums enum_idx = load_content ?
|
enum msg_hash_enums enum_idx = load_content ?
|
||||||
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
MSG_UNKNOWN;
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
|
|
||||||
if (!list)
|
if (!list)
|
||||||
return -1;
|
return -1;
|
||||||
|
@ -475,7 +475,7 @@ static int frontend_win32_parse_drive_list(void *data, bool load_content)
|
|||||||
file_list_t *list = (file_list_t*)data;
|
file_list_t *list = (file_list_t*)data;
|
||||||
enum msg_hash_enums enum_idx = load_content ?
|
enum msg_hash_enums enum_idx = load_content ?
|
||||||
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
MSG_UNKNOWN;
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
size_t i = 0;
|
size_t i = 0;
|
||||||
unsigned drives = GetLogicalDrives();
|
unsigned drives = GetLogicalDrives();
|
||||||
char drive[] = " :\\";
|
char drive[] = " :\\";
|
||||||
|
@ -368,7 +368,7 @@ static int frontend_xdk_parse_drive_list(void *data, bool load_content)
|
|||||||
file_list_t *list = (file_list_t*)data;
|
file_list_t *list = (file_list_t*)data;
|
||||||
enum msg_hash_enums enum_idx = load_content ?
|
enum msg_hash_enums enum_idx = load_content ?
|
||||||
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
MSG_UNKNOWN;
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
|
||||||
|
|
||||||
#if defined(_XBOX1)
|
#if defined(_XBOX1)
|
||||||
menu_entries_append_enum(list,
|
menu_entries_append_enum(list,
|
||||||
|
@ -900,9 +900,14 @@ int generic_action_ok_displaylist_push(const char *path,
|
|||||||
dl_type = DISPLAYLIST_GENERIC;
|
dl_type = DISPLAYLIST_GENERIC;
|
||||||
break;
|
break;
|
||||||
case ACTION_OK_DL_DIRECTORY_PUSH:
|
case ACTION_OK_DL_DIRECTORY_PUSH:
|
||||||
if (path && menu_path)
|
if (!string_is_empty(path))
|
||||||
fill_pathname_join(tmp,
|
{
|
||||||
menu_path, path, sizeof(tmp));
|
if (!string_is_empty(menu_path))
|
||||||
|
fill_pathname_join(
|
||||||
|
tmp, menu_path, path, sizeof(tmp));
|
||||||
|
else
|
||||||
|
strlcpy(tmp, path, sizeof(tmp));
|
||||||
|
}
|
||||||
|
|
||||||
info.type = type;
|
info.type = type;
|
||||||
info.directory_ptr = idx;
|
info.directory_ptr = idx;
|
||||||
|
@ -2393,7 +2393,7 @@ static unsigned menu_displaylist_parse_playlists(
|
|||||||
count++;
|
count++;
|
||||||
else
|
else
|
||||||
if (menu_entries_append_enum(info->list, "/", "",
|
if (menu_entries_append_enum(info->list, "/", "",
|
||||||
MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0))
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, FILE_TYPE_DIRECTORY, 0, 0))
|
||||||
count++;
|
count++;
|
||||||
return count;
|
return count;
|
||||||
}
|
}
|
||||||
@ -2540,7 +2540,7 @@ static unsigned menu_displaylist_parse_cores(
|
|||||||
{
|
{
|
||||||
if (frontend_driver_parse_drive_list(info->list, true) != 0)
|
if (frontend_driver_parse_drive_list(info->list, true) != 0)
|
||||||
menu_entries_append_enum(info->list, "/", "",
|
menu_entries_append_enum(info->list, "/", "",
|
||||||
MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0);
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR, FILE_TYPE_DIRECTORY, 0, 0);
|
||||||
items_found++;
|
items_found++;
|
||||||
return items_found;
|
return items_found;
|
||||||
}
|
}
|
||||||
@ -10828,7 +10828,10 @@ bool menu_displaylist_ctl(enum menu_displaylist_ctl_state type,
|
|||||||
{
|
{
|
||||||
if (frontend_driver_parse_drive_list(info->list, load_content) != 0)
|
if (frontend_driver_parse_drive_list(info->list, load_content) != 0)
|
||||||
if (menu_entries_append_enum(info->list, "/", "",
|
if (menu_entries_append_enum(info->list, "/", "",
|
||||||
MSG_UNKNOWN, FILE_TYPE_DIRECTORY, 0, 0))
|
load_content ?
|
||||||
|
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
|
||||||
|
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY,
|
||||||
|
FILE_TYPE_DIRECTORY, 0, 0))
|
||||||
count++;
|
count++;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
Loading…
x
Reference in New Issue
Block a user