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:
Twinaphex 2019-12-31 13:46:27 +01:00 committed by GitHub
commit 5f1fcf51a6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
15 changed files with 27 additions and 19 deletions

View File

@ -483,7 +483,7 @@ static int frontend_ctr_parse_drive_list(void* data, bool load_content)
file_list_t* list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content
? MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR
: MSG_UNKNOWN;
: MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
if (!list)
return -1;

View File

@ -734,7 +734,7 @@ static int frontend_darwin_parse_drive_list(void *data, bool load_content)
CFBundleRef bundle = CFBundleGetMainBundle();
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
bundle_url = CFBundleCopyBundleURL(bundle);
bundle_path = CFURLCopyPath(bundle_url);

View File

@ -481,7 +481,7 @@ static int frontend_gx_parse_drive_list(void *data, bool load_content)
file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
#ifdef HW_RVL
menu_entries_append_enum(list,
"sd:/",

View File

@ -329,7 +329,7 @@ static int frontend_orbis_parse_drive_list(void *data, bool load_content)
file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
menu_entries_append_enum(list,
"host0:app",

View File

@ -341,7 +341,7 @@ static int frontend_ps2_parse_drive_list(void *data, bool load_content)
file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
menu_entries_append_enum(list,
rootDevicePath(BOOT_DEVICE_MC0),

View File

@ -528,7 +528,7 @@ static int frontend_ps3_parse_drive_list(void *data, bool load_content)
file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
menu_entries_append_enum(list,
"/app_home/",

View File

@ -449,7 +449,7 @@ static int frontend_psp_parse_drive_list(void *data, bool load_content)
file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
#ifdef VITA
menu_entries_append_enum(list,

View File

@ -801,7 +801,7 @@ static int frontend_switch_parse_drive_list(void *data, bool load_content)
file_list_t *list = (file_list_t *)data;
enum msg_hash_enums enum_idx = load_content
? MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR
: MSG_UNKNOWN;
: MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
if (!list)
return -1;

View File

@ -1923,7 +1923,7 @@ static int frontend_unix_parse_drive_list(void *data, bool load_content)
file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
#ifdef ANDROID
if (!string_is_empty(internal_storage_path))

View File

@ -277,7 +277,7 @@ static int frontend_uwp_parse_drive_list(void *data, bool load_content)
file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
char drive[] = " :\\";
char *home_dir = (char*)malloc(PATH_MAX_LENGTH * sizeof(char));
bool have_any_drives = false;

View File

@ -173,7 +173,7 @@ static int frontend_wiiu_parse_drive_list(void *data, bool load_content)
file_list_t *list = (file_list_t *)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
if (!list)
return -1;

View File

@ -475,7 +475,7 @@ static int frontend_win32_parse_drive_list(void *data, bool load_content)
file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
size_t i = 0;
unsigned drives = GetLogicalDrives();
char drive[] = " :\\";

View File

@ -368,7 +368,7 @@ static int frontend_xdk_parse_drive_list(void *data, bool load_content)
file_list_t *list = (file_list_t*)data;
enum msg_hash_enums enum_idx = load_content ?
MENU_ENUM_LABEL_FILE_DETECT_CORE_LIST_PUSH_DIR :
MSG_UNKNOWN;
MENU_ENUM_LABEL_FILE_BROWSER_DIRECTORY;
#if defined(_XBOX1)
menu_entries_append_enum(list,

View File

@ -900,9 +900,14 @@ int generic_action_ok_displaylist_push(const char *path,
dl_type = DISPLAYLIST_GENERIC;
break;
case ACTION_OK_DL_DIRECTORY_PUSH:
if (path && menu_path)
fill_pathname_join(tmp,
menu_path, path, sizeof(tmp));
if (!string_is_empty(path))
{
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.directory_ptr = idx;

View File

@ -2393,7 +2393,7 @@ static unsigned menu_displaylist_parse_playlists(
count++;
else
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++;
return count;
}
@ -2540,7 +2540,7 @@ static unsigned menu_displaylist_parse_cores(
{
if (frontend_driver_parse_drive_list(info->list, true) != 0)
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++;
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 (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++;
}
else