diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 083c3070ae..a5713e029c 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -173,7 +173,6 @@ static int menu_displaylist_parse( if (!*dir) { menu_displaylist_parse_drive_list(list); - menu_driver_populate_entries(dir, label, type); return 0; } @@ -306,7 +305,7 @@ static int menu_displaylist_parse( menu_list_sort_on_alt(list); } - menu_list_populate_generic(list, dir, label, type); + menu_list_refresh(list); return 0; } @@ -498,6 +497,8 @@ int menu_displaylist_push_list(menu_displaylist_info_t *info, unsigned type) ret = menu_displaylist_parse(info->list, info->menu_list, info->path, info->label, info->type, info->type_default, info->exts, info->setting); + if (ret == 0) + menu_driver_populate_entries(info->path, info->label, info->type); break; case DISPLAYLIST_DATABASE_QUERY: menu_list_clear(info->list); diff --git a/menu/menu_list.c b/menu/menu_list.c index 90a860f424..9880f5e179 100644 --- a/menu/menu_list.c +++ b/menu/menu_list.c @@ -124,7 +124,7 @@ static void menu_list_build_scroll_indices(file_list_t *list) * * Ensure it doesn't overflow. **/ -static void menu_list_refresh(file_list_t *list) +void menu_list_refresh(file_list_t *list) { menu_navigation_t *nav = menu_navigation_get_ptr(); menu_list_t *menu_list = menu_list_get_ptr(); diff --git a/menu/menu_list.h b/menu/menu_list.h index f264617577..88dfcb6dc6 100644 --- a/menu/menu_list.h +++ b/menu/menu_list.h @@ -86,6 +86,8 @@ void menu_list_get_alt_at_offset(const file_list_t *list, size_t idx, void menu_list_set_alt_at_offset(file_list_t *list, size_t idx, const char *alt); +void menu_list_refresh(file_list_t *list); + int menu_list_populate_generic(file_list_t *list, const char *path, const char *label, unsigned type);