diff --git a/menu/drivers/ozone.c b/menu/drivers/ozone.c index 5107418813..c804c61ccb 100644 --- a/menu/drivers/ozone.c +++ b/menu/drivers/ozone.c @@ -10483,11 +10483,15 @@ static void ozone_frame(void *data, video_frame_info_t *video_info) static void ozone_set_header(ozone_handle_t *ozone) { - if (ozone->categories_selection_ptr <= ozone->system_tab_end) + if (ozone->categories_selection_ptr <= ozone->system_tab_end || + (ozone->is_quick_menu && !menu_is_running_quick_menu()) || + ozone->depth > 1) menu_entries_get_title(ozone->title, sizeof(ozone->title)); else { - ozone_node_t *node = (ozone_node_t*)file_list_get_userdata_at_offset(&ozone->horizontal_list, ozone->categories_selection_ptr - ozone->system_tab_end-1); + ozone_node_t *node = (ozone_node_t*)file_list_get_userdata_at_offset( + &ozone->horizontal_list, + ozone->categories_selection_ptr - ozone->system_tab_end-1); if (node && node->console_name) { @@ -10600,8 +10604,6 @@ static void ozone_populate_entries(void *data, settings = config_get_ptr(); ozone_collapse_sidebar = settings->bools.ozone_collapse_sidebar; - ozone_set_header(ozone); - if (menu_driver_ctl(RARCH_MENU_CTL_IS_PREVENT_POPULATE, NULL)) { menu_driver_ctl(RARCH_MENU_CTL_UNSET_PREVENT_POPULATE, NULL); @@ -10679,6 +10681,8 @@ static void ozone_populate_entries(void *data, ozone->is_state_slot = string_to_unsigned(path) == MENU_ENUM_LABEL_STATE_SLOT; ozone->is_playlist = ozone_is_playlist(ozone, true); + ozone_set_header(ozone); + if (was_db_manager_list) { ozone->is_db_manager_list = true; diff --git a/menu/drivers/xmb.c b/menu/drivers/xmb.c index ec69b8241f..bf281f9071 100644 --- a/menu/drivers/xmb.c +++ b/menu/drivers/xmb.c @@ -1101,7 +1101,8 @@ static char* xmb_path_dynamic_wallpaper(xmb_handle_t *xmb) unsigned depth = (unsigned)xmb_list_get_size(xmb, MENU_LIST_PLAIN); /* Do not update wallpaper in "Load Content" playlists */ - if (xmb->categories_selection_ptr == 0 && depth > 4) + if ((xmb->categories_selection_ptr == 0 && depth > 4) || + (xmb->categories_selection_ptr > xmb->system_tab_end && depth > 1)) return strdup(xmb->bg_file_path); if (tmp) @@ -1963,7 +1964,9 @@ static void xmb_list_switch_new(xmb_handle_t *xmb, static void xmb_set_title(xmb_handle_t *xmb) { - if (xmb->categories_selection_ptr <= xmb->system_tab_end) + if (xmb->categories_selection_ptr <= xmb->system_tab_end || + (xmb->is_quick_menu && !menu_is_running_quick_menu()) || + xmb->depth > 1) menu_entries_get_title(xmb->title_name, sizeof(xmb->title_name)); else { @@ -2592,10 +2595,6 @@ static void xmb_populate_entries(void *data, if (settings->bools.menu_content_show_video) xmb->playlist_collection_offset++; - xmb_set_title(xmb); - if (menu_dynamic_wallpaper_enable) - xmb_update_dynamic_wallpaper(xmb); - if (menu_driver_ctl(RARCH_MENU_CTL_IS_PREVENT_POPULATE, NULL)) { xmb_selection_pointer_changed(xmb, false); @@ -2608,6 +2607,10 @@ static void xmb_populate_entries(void *data, else xmb_list_open(xmb); + xmb_set_title(xmb); + if (menu_dynamic_wallpaper_enable) + xmb_update_dynamic_wallpaper(xmb); + /* Determine whether to show entry index */ /* Update list size & entry index texts */ if ((xmb->entry_idx_enabled = show_entry_idx && xmb->is_playlist)) @@ -6808,7 +6811,7 @@ static void xmb_context_reset_internal(xmb_handle_t *xmb, APPLICATION_SPECIAL_DIRECTORY_ASSETS_XMB_BG); /* Do not reset wallpaper in "Load Content" playlists. */ - if (!string_is_empty(bg_file_path) && xmb->depth < 4) + if (!string_is_empty(bg_file_path) && xmb->depth < 2) { if (!string_is_empty(xmb->bg_file_path)) free(xmb->bg_file_path); diff --git a/menu/menu_driver.c b/menu/menu_driver.c index 293b4410f1..3258e21706 100644 --- a/menu/menu_driver.c +++ b/menu/menu_driver.c @@ -1094,7 +1094,7 @@ int menu_entries_get_title(char *s, size_t len) if (cbs && cbs->action_get_title) { - int ret; + int ret = 0; if (!string_is_empty(cbs->action_title_cache)) { strlcpy(s, cbs->action_title_cache, len); @@ -1102,7 +1102,26 @@ int menu_entries_get_title(char *s, size_t len) } file_list_get_last(MENU_LIST_GET(menu_st->entries.list, 0), &path, &label, &menu_type, NULL); - ret = cbs->action_get_title(path, label, menu_type, s, len); + + /* Show playlist entry instead of "Quick Menu" */ + if (string_is_equal(label, "deferred_rpl_entry_actions")) + { + const struct playlist_entry *entry = NULL; + playlist_t *playlist = playlist_get_cached(); + if (playlist) + { + menu_handle_t *menu = menu_state_get_ptr()->driver_data; + playlist_get_index(playlist, menu->rpl_entry_selection_ptr, &entry); + + if (entry) + strlcpy(s, + !string_is_empty(entry->label) ? entry->label : entry->path, + len); + } + } + else + ret = cbs->action_get_title(path, label, menu_type, s, len); + if (ret == 1) strlcpy(cbs->action_title_cache, s, sizeof(cbs->action_title_cache)); return ret;