diff --git a/menu/cbs/menu_cbs_ok.c b/menu/cbs/menu_cbs_ok.c index 355025d496..f078fc3a0f 100644 --- a/menu/cbs/menu_cbs_ok.c +++ b/menu/cbs/menu_cbs_ok.c @@ -1444,6 +1444,7 @@ static int action_ok_file_load(const char *path, } static void generic_playlist_update_write( + playlist_t *plist, size_t idx, const char *core_display_name, const char *label, @@ -1451,7 +1452,10 @@ static void generic_playlist_update_write( { playlist_t *playlist = NULL; - menu_driver_ctl(RARCH_MENU_CTL_PLAYLIST_GET, &playlist); + if (plist) + playlist = plist; + else + menu_driver_ctl(RARCH_MENU_CTL_PLAYLIST_GET, &playlist); retro_assert(playlist != NULL); @@ -1555,7 +1559,9 @@ static int action_ok_playlist_entry_collection(const char *path, return ret; } - generic_playlist_update_write( + menu_driver_ctl(RARCH_MENU_CTL_PLAYLIST_GET, &tmp_playlist); + + generic_playlist_update_write(tmp_playlist, selection_ptr, core_info.inf->display_name, NULL, @@ -1642,7 +1648,7 @@ static int action_ok_playlist_entry(const char *path, return action_ok_file_load_with_detect_core(entry_path, label, type, selection_ptr, entry_idx); - generic_playlist_update_write( + generic_playlist_update_write(NULL, selection_ptr, core_info.inf->display_name, NULL, @@ -1747,7 +1753,10 @@ static int action_ok_playlist_entry_start_content(const char *path, return ret; } + menu_driver_ctl(RARCH_MENU_CTL_PLAYLIST_GET, &tmp_playlist); + generic_playlist_update_write( + tmp_playlist, selection_ptr, core_info.inf->display_name, NULL, @@ -1925,7 +1934,7 @@ static void menu_input_st_string_cb_rename_entry(void *userdata, const char *label = menu_input_dialog_get_buffer(); if (!string_is_empty(label)) - generic_playlist_update_write( + generic_playlist_update_write(NULL, menu_input_dialog_get_kb_idx(), NULL, label, @@ -2303,7 +2312,7 @@ static int action_ok_core_deferred_set(const char *path, core_display_name[0] = '\0'; core_info_get_name(path, core_display_name, sizeof(core_display_name)); - generic_playlist_update_write( + generic_playlist_update_write(NULL, rdb_entry_start_game_selection_ptr, core_display_name, NULL, path); @@ -2322,7 +2331,7 @@ static int action_ok_core_deferred_set_current_core(const char *path, core_display_name[0] = '\0'; core_info_get_name(path, core_display_name, sizeof(core_display_name)); - generic_playlist_update_write( + generic_playlist_update_write(NULL, rdb_entry_start_game_selection_ptr, core_display_name, NULL, path);