diff --git a/NEWS b/NEWS index 66db1f6d8..3ab9a5b67 100644 --- a/NEWS +++ b/NEWS @@ -3,6 +3,7 @@ ver 0.18.10 (not yet released) - ffmpeg: fix seeking bug - ffmpeg: handle unknown stream start time - gme: fix memory leak +* don't interrupt playback when current song gets deleted ver 0.18.9 (2014/03/02) * protocol diff --git a/src/PlaylistEdit.cxx b/src/PlaylistEdit.cxx index 668612a1a..3eea2491e 100644 --- a/src/PlaylistEdit.cxx +++ b/src/PlaylistEdit.cxx @@ -234,12 +234,8 @@ playlist::DeleteInternal(PlayerControl &pc, if (playing && current == (int)songOrder) { const bool paused = pc.GetState() == PlayerState::PAUSE; - /* the current song is going to be deleted: stop the player */ - - pc.Stop(); - playing = false; - - /* see which song is going to be played instead */ + /* the current song is going to be deleted: see which + song is going to be played instead */ current = queue.GetNextOrder(current); if (current == (int)songOrder) @@ -248,10 +244,12 @@ playlist::DeleteInternal(PlayerControl &pc, if (current >= 0 && !paused) /* play the song after the deleted one */ PlayOrder(pc, current); - else - /* no songs left to play, stop playback - completely */ - Stop(pc); + else { + /* stop the player */ + + pc.Stop(); + playing = false; + } *queued_p = nullptr; } else if (current == (int)songOrder)