Index: src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs
===================================================================
--- src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs	(revision 4865)
+++ src/Core/Banshee.ThickClient/Banshee.Gui.Widgets/ConnectedSeekSlider.cs	(working copy)
@@ -104,8 +104,8 @@
                 box = new VBox ();
             }
             
-            seek_slider.SetSizeRequest (125, -1);
-                     
+            seek_slider.SetSizeRequest (250, -1);
+            
             box.PackStart (seek_slider, true, true, 0);
             box.PackStart (stream_position_label, false, false, 0);
             
Index: src/Core/Banshee.Widgets/Banshee.Widgets/SeekSlider.cs
===================================================================
--- src/Core/Banshee.Widgets/Banshee.Widgets/SeekSlider.cs	(revision 4865)
+++ src/Core/Banshee.Widgets/Banshee.Widgets/SeekSlider.cs	(working copy)
@@ -61,7 +61,16 @@
             can_set_value = false;
             return base.OnButtonPressEvent(evnt);
         }
+
+        protected override bool OnScrollEvent(Gdk.EventScroll evnt) {
+            if (can_seek)
+                SeekValue += (evnt.Direction.Equals (Gdk.ScrollDirection.Down) ? -1 : 1) * 10000; // skip 10s
         
+            OnSeekRequested();
+            
+            return base.OnScrollEvent (evnt);
+        }
+
         protected override bool OnButtonReleaseEvent(Gdk.EventButton evnt)
         {
             can_set_value = true;
@@ -70,7 +79,10 @@
                 GLib.Source.Remove(timeout);
             }
             
-            OnSeekRequested();
+            if (can_seek && evnt.Button == 1) {
+                SeekValue = (long) (evnt.X / WidthRequest * Duration); // seek to clicked position
+                OnSeekRequested();
+            }
             
             return base.OnButtonReleaseEvent(evnt);
         }
