[banshee] Improve seek slider behavior with seekable streams



commit e14ad5c734f27c63033e36685ca25ae908b52452
Author: Neil Loknath <neil loknath gmail com>
Date:   Thu Aug 6 17:07:06 2009 -0600

    Improve seek slider behavior with seekable streams
    
    Prevent the slider from jumping around after moving it while playing a
    seekable stream (BGO#591016).
    
    Signed-off-by: Bertrand Lorentz <bertrand lorentz gmail com>

 .../Banshee.Gui.Widgets/ConnectedSeekSlider.cs     |   11 +++++++----
 1 files changed, 7 insertions(+), 4 deletions(-)
---
diff --git a/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs b/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs
index c3ae93e..19366d2 100644
--- a/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs
+++ b/src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs
@@ -140,7 +140,7 @@ namespace Banshee.Gui.Widgets
                     
                     stream_position_label.StreamState = StreamLabelState.Buffering;
                     stream_position_label.BufferingProgress = buffering.Progress;
-                    seek_slider.SetIdle ();
+                    seek_slider.Sensitive = false;
                     break;
                 case PlayerEvent.StateChange:
                     switch (((PlayerEventStateChangeArgs)args).Current) {
@@ -179,12 +179,15 @@ namespace Banshee.Gui.Widgets
                 return;
             }
             
-            stream_position_label.StreamState = StreamLabelState.Playing;
             Banshee.Collection.TrackInfo track = ServiceManager.PlayerEngine.CurrentTrack;
             stream_position_label.IsLive = track == null ? false : track.IsLive;
-            stream_position_label.StreamState = StreamLabelState.Playing;
             seek_slider.Duration = ServiceManager.PlayerEngine.Length;
-            seek_slider.SeekValue = ServiceManager.PlayerEngine.Position;
+            
+            if (stream_position_label.StreamState != StreamLabelState.Buffering) {
+                stream_position_label.StreamState = StreamLabelState.Playing;
+                seek_slider.SeekValue = ServiceManager.PlayerEngine.Position;
+            }
+            
             seek_slider.CanSeek = ServiceManager.PlayerEngine.CanSeek;
         }
         



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]