aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--src/playlist.c26
1 files changed, 20 insertions, 6 deletions
diff --git a/src/playlist.c b/src/playlist.c
index b14747fc8..8f4b17804 100644
--- a/src/playlist.c
+++ b/src/playlist.c
@@ -1194,12 +1194,26 @@ int moveSongInPlaylist(int fd, int from, int to)
playlist.order[i] = to;
}
}
- } else if (playlist.current == from)
- playlist.current = to;
- else if (playlist.current > from && playlist.current <= to) {
- playlist.current--;
- } else if (playlist.current >= to && playlist.current < from) {
- playlist.current++;
+ }
+ else
+ {
+ if (playlist.current == from)
+ playlist.current = to;
+ else if (playlist.current > from && playlist.current <= to) {
+ playlist.current--;
+ } else if (playlist.current >= to && playlist.current < from) {
+ playlist.current++;
+ }
+
+ /* this first if statement isn't necessary since the queue
+ * would have been cleared out if queued == from */
+ if (playlist.queued == from)
+ playlist.queued = to;
+ else if (playlist.queued > from && playlist.queued <= to) {
+ playlist.queued--;
+ } else if (playlist.queued>= to && playlist.queued < from) {
+ playlist.queued++;
+ }
}
incrPlaylistVersion();