summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
Diffstat (limited to 'apps')
-rw-r--r--apps/tagtree.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/apps/tagtree.c b/apps/tagtree.c
index 2ebab7949c..0506dd2edd 100644
--- a/apps/tagtree.c
+++ b/apps/tagtree.c
@@ -2161,6 +2161,8 @@ bool tagtree_insert_selection_playlist(int position, bool queue)
2161 2161
2162static int tagtree_play_folder(struct tree_context* c) 2162static int tagtree_play_folder(struct tree_context* c)
2163{ 2163{
2164 int start_index = c->selected_item;
2165
2164 if (playlist_create(NULL, NULL) < 0) 2166 if (playlist_create(NULL, NULL) < 0)
2165 { 2167 {
2166 logf("Failed creating playlist\n"); 2168 logf("Failed creating playlist\n");
@@ -2171,12 +2173,13 @@ static int tagtree_play_folder(struct tree_context* c)
2171 return -2; 2173 return -2;
2172 2174
2173 if (global_settings.playlist_shuffle) 2175 if (global_settings.playlist_shuffle)
2174 c->selected_item = playlist_shuffle(current_tick, c->selected_item); 2176 {
2175 if (!global_settings.play_selected) 2177 start_index = playlist_shuffle(current_tick, c->selected_item);
2176 c->selected_item = 0; 2178 if (!global_settings.play_selected)
2177 gui_synclist_select_item(&tree_lists, c->selected_item); 2179 start_index = 0;
2180 }
2178 2181
2179 playlist_start(c->selected_item, 0, 0); 2182 playlist_start(start_index, 0, 0);
2180 playlist_get_current()->num_inserted_tracks = 0; /* make warn on playlist erase work */ 2183 playlist_get_current()->num_inserted_tracks = 0; /* make warn on playlist erase work */
2181 return 0; 2184 return 0;
2182} 2185}