diff options
Diffstat (limited to 'apps')
-rw-r--r-- | apps/tagtree.c | 13 |
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 | ||
2162 | static int tagtree_play_folder(struct tree_context* c) | 2162 | static 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 | } |