[pitivi] elements: don't edit the clip if it wasn't actually moved.



commit 8cc00e5d6f36a39a5905d33eaa6f5ff66e2f858e
Author: Mathieu Duponchelle <mathieu duponchelle epitech eu>
Date:   Sat Aug 24 20:12:46 2013 +0200

    elements: don't edit the clip if it wasn't actually moved.
    
    Fixes https://github.com/pitivi/pitivi/issues/99

 pitivi/timeline/elements.py |   23 ++++++++++++++---------
 1 files changed, 14 insertions(+), 9 deletions(-)
---
diff --git a/pitivi/timeline/elements.py b/pitivi/timeline/elements.py
index b73b3a4..bfd386a 100644
--- a/pitivi/timeline/elements.py
+++ b/pitivi/timeline/elements.py
@@ -973,6 +973,7 @@ class Keyframe(Clutter.Actor):
 class URISourceElement(TimelineElement):
     def __init__(self, bElement, track, timeline):
         TimelineElement.__init__(self, bElement, track, timeline)
+        self.gotDragged = False
 
     # public API
 
@@ -1013,7 +1014,6 @@ class URISourceElement(TimelineElement):
     # Callbacks
     def _clickedCb(self, action, actor):
         #TODO : Let's be more specific, masks etc ..
-
         children = self.bElement.get_toplevel_parent().get_children(True)
         selection = filter(lambda elem: isinstance(elem, GES.Source), children)
 
@@ -1041,13 +1041,8 @@ class URISourceElement(TimelineElement):
         return False
 
     def _dragBeginCb(self, action, actor, event_x, event_y, modifiers):
+        self.gotDragged = False
         mode = self.timeline._container.getEditionMode()
-        self._context = EditingContext(self.bElement,
-                                       self.timeline.bTimeline,
-                                       mode,
-                                       GES.Edge.EDGE_NONE,
-                                       None,
-                                       self.timeline._container.app.action_log)
 
         # This can't change during a drag, so we can safely compute it now for drag events.
         nbrLayers = len(self.timeline.bTimeline.get_layers())
@@ -1068,6 +1063,15 @@ class URISourceElement(TimelineElement):
 
     def _dragProgressCb(self, action, actor, delta_x, delta_y):
         # We can't use delta_x here because it fluctuates weirdly.
+        if not self.gotDragged:
+            self.gotDragged = True
+            self._context = EditingContext(self.bElement,
+                                           self.timeline.bTimeline,
+                                           None,
+                                           GES.Edge.EDGE_NONE,
+                                           None,
+                                           self.timeline._container.app.action_log)
+
         mode = self.timeline._container.getEditionMode()
         self._context.setMode(mode)
 
@@ -1110,8 +1114,9 @@ class URISourceElement(TimelineElement):
         if self.ghostclip.shouldCreateLayer:
             self.timeline.insertLayer(self.ghostclip)
 
-        self._context.editTo(new_start, priority)
-        self._context.finish()
+        if self.gotDragged:
+            self._context.editTo(new_start, priority)
+            self._context.finish()
 
 
 class TransitionElement(TimelineElement):


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