diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index 729ef08fe3..692d6d986a 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1032,7 +1032,7 @@ static void xmb_init_horizontal_list(xmb_handle_t *xmb) info.menu_list = NULL; info.type = 0; info.type_default = MENU_FILE_PLAIN; - + info.flags = SL_FLAG_ALLOW_EMPTY_LIST; strlcpy(info.label, menu_hash_to_str(MENU_LABEL_CONTENT_COLLECTION_LIST), sizeof(info.label)); diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index b3ba9eff99..0419d5b1c0 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -2261,9 +2261,12 @@ static int menu_displaylist_parse_generic(menu_displaylist_info_t *info, bool ho if (list_size == 0) { - menu_entries_push(info->list, - menu_hash_to_str(MENU_LABEL_VALUE_NO_ITEMS), - "", MENU_SETTING_NO_ITEM, 0, 0); + if (!(info->flags & SL_FLAG_ALLOW_EMPTY_LIST)) + { + menu_entries_push(info->list, + menu_hash_to_str(MENU_LABEL_VALUE_NO_ITEMS), + "", MENU_SETTING_NO_ITEM, 0, 0); + } string_list_free(str_list); @@ -2395,9 +2398,12 @@ static int menu_displaylist_parse_generic(menu_displaylist_info_t *info, bool ho case MENU_LABEL_CORE_LIST: if (items_found == 0) { - menu_entries_push(info->list, - menu_hash_to_str(MENU_LABEL_VALUE_NO_ITEMS), - "", MENU_SETTING_NO_ITEM, 0, 0); + if (!(info->flags & SL_FLAG_ALLOW_EMPTY_LIST)) + { + menu_entries_push(info->list, + menu_hash_to_str(MENU_LABEL_VALUE_NO_ITEMS), + "", MENU_SETTING_NO_ITEM, 0, 0); + } return 0; } diff --git a/menu/menu_setting.h b/menu/menu_setting.h index 5c8053396f..3fc3cd0e12 100644 --- a/menu/menu_setting.h +++ b/menu/menu_setting.h @@ -95,7 +95,8 @@ enum setting_list_flags SL_FLAG_SETTINGS_LOGGING_OPTIONS = (1 << 27), SL_FLAG_SETTINGS_SAVING_OPTIONS = (1 << 28), SL_FLAG_SETTINGS_SUB_ACCOUNTS_OPTIONS = (1 << 29), - SL_FLAG_SETTINGS_ALL = (1 << 30) + SL_FLAG_SETTINGS_ALL = (1 << 30), + SL_FLAG_ALLOW_EMPTY_LIST = (1 << 31) }; typedef struct rarch_setting_group_info rarch_setting_group_info_t;