From c751add94e265e12f590674fc0673787c4ca87c8 Mon Sep 17 00:00:00 2001 From: salmonik Date: Sun, 10 May 2026 01:18:25 +0200 Subject: Fix shuffle to not shuffle current track - only shuffle tracks after current position --- src/queue.rs | 17 +++++++---------- 1 file changed, 7 insertions(+), 10 deletions(-) diff --git a/src/queue.rs b/src/queue.rs index 503560b..2c20356 100644 --- a/src/queue.rs +++ b/src/queue.rs @@ -227,9 +227,7 @@ impl Queue { ShuffleMode::All => { let mut rng = rand::rng(); let pos = self.position.min(len.saturating_sub(1)); - if pos == 0 && len > 1 { - self.shuffled_indices.shuffle(&mut rng); - } else if pos + 1 < len { + if pos + 1 < len { self.shuffled_indices[pos + 1..].shuffle(&mut rng); } } @@ -244,13 +242,12 @@ impl Queue { let len = self.tracks.len(); self.shuffled_indices = (0..len).collect(); - let mut rng = rand::rng(); - let pos = self.position.min(len.saturating_sub(1)); - - if pos == 0 && len > 1 { - self.shuffle_album_range(0..len, &mut rng); - } else if pos + 1 < len { - self.shuffle_album_range(pos + 1..len, &mut rng); + if len > 1 { + let mut rng = rand::rng(); + let pos = self.position.min(len.saturating_sub(1)); + if pos + 1 < len { + self.shuffle_album_range(pos + 1..len, &mut rng); + } } } -- cgit v1.2.3