pitivi r1312 - in trunk: . pitivi/ui



Author: edwardrv
Date: Fri Oct 10 08:53:46 2008
New Revision: 1312
URL: http://svn.gnome.org/viewvc/pitivi?rev=1312&view=rev

Log:
	* pitivi/ruler.py:
	Fix similar pending-seek behaviour as did previously in the viewer.

Modified:
   trunk/ChangeLog
   trunk/pitivi/ui/ruler.py

Modified: trunk/pitivi/ui/ruler.py
==============================================================================
--- trunk/pitivi/ui/ruler.py	(original)
+++ trunk/pitivi/ui/ruler.py	Fri Oct 10 08:53:46 2008
@@ -63,7 +63,7 @@
 
         # position is in nanoseconds
         self.position = 0
-        self.requested_time = long(0)
+        self.requested_time = gst.CLOCK_TIME_NONE
         self.currentlySeeking = False
         self.pressed = False
 
@@ -76,7 +76,7 @@
 
 ## timeline position changed method
 
-    def timelinePositionChanged(self, value, unused_frame):
+    def timelinePositionChanged(self, value, unused_frame=None):
         gst.debug("value : %r" % value)
         ppos = max(self.nsToPixel(self.position) - 1, 0)
         self.position = value
@@ -152,18 +152,24 @@
     def _seekTimeoutCb(self):
         gst.debug("timeout")
         self.currentlySeeking = False
-        if not self.position == self.requested_time:
+        if (self.requested_time != gst.CLOCK_TIME_NONE) and (self.position != self.requested_time):
             self._doSeek(self.requested_time)
         return False
 
     def _doSeek(self, value, format=gst.FORMAT_TIME):
         gst.debug("seeking to %s / currentlySeeking %r" % (gst.TIME_ARGS (value),
                                                            self.currentlySeeking))
+        if (format == gst.FORMAT_TIME) and (value > self.getDuration()):
+            gst.debug("you can't seek outside of the timeline")
+            return
         if not self.currentlySeeking:
+            self.currentlySeeking = True
             if instance.PiTiVi.playground.seekInCurrent(value, format=format):
-                self.currentlySeeking = True
-                self.requested_time = value
+                self.requested_time = gst.CLOCK_TIME_NONE
                 gobject.timeout_add(80, self._seekTimeoutCb)
+                self.timelinePositionChanged(value)
+            else:
+                self.currentlySeeking = False
         elif format == gst.FORMAT_TIME:
             self.requested_time = value
 



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