diff --git a/src/screen_queue.c b/src/screen_queue.c
index 7d915ebf9b242496175727962c2794f1503631f2..02978eab5fd291b890b770fc77ef19cc0059c5ef 100644 (file)
--- a/src/screen_queue.c
+++ b/src/screen_queue.c
if (range.start == 0 || range.end <= range.start)
return false;
- for (unsigned i = range.start; i < range.end; ++i)
- mpdclient_cmd_swap(c, i, i - 1);
+ if (!mpdclient_cmd_move(c, range.end - 1, range.start - 1))
+ return true;
lw->selected--;
lw->range_base--;
if (range.end >= playlist_length(&c->playlist))
return false;
- for (int i = range.end - 1; i >= (int)range.start; --i)
- mpdclient_cmd_swap(c, i, i + 1);
+ if (!mpdclient_cmd_move(c, range.start, range.end))
+ return true;
lw->selected++;
lw->range_base++;