about summary refs log tree commit homepage
diff options
context:
space:
mode:
-rw-r--r--lib/dtas/tracklist.rb6
-rw-r--r--test/test_tracklist.rb2
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