diff --git a/menu/cbs/menu_cbs_deferred_push.c b/menu/cbs/menu_cbs_deferred_push.c index ee8a0cf6b8..7c847047f8 100644 --- a/menu/cbs/menu_cbs_deferred_push.c +++ b/menu/cbs/menu_cbs_deferred_push.c @@ -358,7 +358,9 @@ static int general_push(menu_displaylist_info_t *info, unsigned id, unsigned typ break; case PUSH_DEFAULT: info->setting = menu_setting_find(info->label); - if (info->setting && info->setting->browser_selection_type == ST_DIR) {} + if (menu_setting_get_browser_selection_type(info->setting) == ST_DIR) + { + } else if (global->menu.info.valid_extensions) { if (*global->menu.info.valid_extensions) diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index b68acb8583..6a158b1035 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1731,7 +1731,7 @@ static int menu_cbs_init_bind_ok_compare_label(menu_file_list_cbs_t *cbs, return 0; } - if (cbs->setting && cbs->setting->browser_selection_type == ST_DIR) + if (menu_setting_get_browser_selection_type(cbs->setting) == ST_DIR) { cbs->action_ok = action_ok_push_generic_list; return 0; diff --git a/menu/menu_displaylist.c b/menu/menu_displaylist.c index 17515c15cf..567cda4a29 100644 --- a/menu/menu_displaylist.c +++ b/menu/menu_displaylist.c @@ -2189,8 +2189,7 @@ static int menu_displaylist_parse_generic(menu_displaylist_info_t *info, bool *n } path_is_compressed = path_is_compressed_file(info->path); - push_dir = (info->setting - && info->setting->browser_selection_type == ST_DIR); + push_dir = (menu_setting_get_browser_selection_type(info->setting) == ST_DIR); filter_ext = settings->menu.navigation.browser.filter.supported_extensions_enable; diff --git a/menu/menu_setting.c b/menu/menu_setting.c index ffeb566244..87afbf081f 100644 --- a/menu/menu_setting.c +++ b/menu/menu_setting.c @@ -51,6 +51,13 @@ enum setting_type menu_setting_get_type(rarch_setting_t *setting) return setting->type; } +enum setting_type menu_setting_get_browser_selection_type(rarch_setting_t *setting) +{ + if (!setting) + return ST_NONE; + return setting->browser_selection_type; +} + static void menu_settings_info_list_free(rarch_setting_info_t *list_info) { if (list_info) diff --git a/menu/menu_setting.h b/menu/menu_setting.h index dc69adc98d..b9a4ac6691 100644 --- a/menu/menu_setting.h +++ b/menu/menu_setting.h @@ -284,6 +284,8 @@ int menu_action_handle_setting(rarch_setting_t *setting, enum setting_type menu_setting_get_type(rarch_setting_t *setting); +enum setting_type menu_setting_get_browser_selection_type(rarch_setting_t *setting); + const char *menu_setting_get_values(rarch_setting_t *setting); const char *menu_setting_get_name(rarch_setting_t *setting);