diff --git a/frontend/menu/menu_common.c b/frontend/menu/menu_common.c index cd80494721..caaf830ab6 100644 --- a/frontend/menu/menu_common.c +++ b/frontend/menu/menu_common.c @@ -495,6 +495,14 @@ void menu_init(void) strlcpy(rgui->browser->current_dir.extensions, rgui->info.valid_extensions, sizeof(rgui->browser->current_dir.extensions)); + + // Look for zips to extract as well. + if (*rgui->info.valid_extensions) + { + strlcat(rgui->browser->current_dir.extensions, "|zip", + sizeof(rgui->browser->current_dir.extensions)); + } + strlcpy(rgui->browser->current_dir.root_dir, g_settings.rgui_browser_directory, sizeof(rgui->browser->current_dir.root_dir)); diff --git a/frontend/menu/rmenu.c b/frontend/menu/rmenu.c index 94abd93e24..598e865678 100644 --- a/frontend/menu/rmenu.c +++ b/frontend/menu/rmenu.c @@ -2473,18 +2473,7 @@ static int select_rom(void *data, uint64_t input) if (driver.input->set_keybinds) driver.input->set_keybinds(&key_label_b, 0, 0, 0, (1ULL << KEYBINDS_ACTION_GET_BIND_LABEL)); - char ext_buf[1024]; - char *ext = NULL; - if (rgui->info.valid_extensions) - { - ext = ext_buf; - if (*rgui->info.valid_extensions) - snprintf(ext_buf, sizeof(ext_buf), "%s|zip", rgui->info.valid_extensions); - else - *ext_buf = '\0'; - } - - filebrowser_update(rgui->browser, input, ext); + filebrowser_update(rgui->browser, input, rgui->browser->current_dir.extensions); if (input & (1ULL << DEVICE_NAV_B)) { @@ -2507,13 +2496,13 @@ static int select_rom(void *data, uint64_t input) { const char * drive_map = menu_drive_mapping_previous(); if (drive_map != NULL) - filebrowser_set_root_and_ext(rgui->browser, ext, drive_map); + filebrowser_set_root_and_ext(rgui->browser, rgui->browser->current_dir.extensions, drive_map); } else if (input & (1ULL << DEVICE_NAV_R1)) { const char * drive_map = menu_drive_mapping_next(); if (drive_map != NULL) - filebrowser_set_root_and_ext(rgui->browser, ext, drive_map); + filebrowser_set_root_and_ext(rgui->browser, rgui->browser->current_dir.extensions, drive_map); } else if ((input & (1ULL << DEVICE_NAV_X) || (input & (1ULL << DEVICE_NAV_MENU))))