diff options
-rw-r--r-- | lib/dtas/tracklist.rb | 6 | ||||
-rw-r--r-- | test/test_tracklist.rb | 2 |
2 files changed, 6 insertions, 2 deletions
diff --git a/lib/dtas/tracklist.rb b/lib/dtas/tracklist.rb index d3db4e9..b1cdc1e 100644 --- a/lib/dtas/tracklist.rb +++ b/lib/dtas/tracklist.rb @@ -93,9 +93,11 @@ class DTAS::Tracklist # :nodoc: prev = @shuffle if bool list = @shuffle = (prev ||= @list).shuffle - else - list = @list + elsif prev @shuffle = false + list = @list + else + return false end @pos = _update_pos(@pos, prev, list) if @pos >= 0 @goto_pos = _update_pos(@goto_pos, prev, list) if @goto_pos diff --git a/test/test_tracklist.rb b/test/test_tracklist.rb index 4d00227..c918ff7 100644 --- a/test/test_tracklist.rb +++ b/test/test_tracklist.rb @@ -73,6 +73,8 @@ class TestTracklist < Testcase assert_equal false, tl.shuffle tl.instance_variable_set :@pos, 3 + assert_equal false, tl.shuffle = false + before = tl.cur_track 3.times do tl.shuffle = true |