[pitivi] elements: Make sure the line remains straight when adding a keyframe when clicked
- From: Thibault Saunier <tsaunier src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [pitivi] elements: Make sure the line remains straight when adding a keyframe when clicked
- Date: Sun, 2 Mar 2014 12:37:54 +0000 (UTC)
commit 0ff3bae5cebfac877fb4a567703e6b00ddd1bd1c
Author: Alexandru Băluț <alexandru balut gmail com>
Date: Sat Mar 1 14:59:41 2014 +0100
elements: Make sure the line remains straight when adding a keyframe when clicked
Fixes https://bugzilla.gnome.org/show_bug.cgi?id=711168
pitivi/timeline/elements.py | 16 ++++++++++++----
1 files changed, 12 insertions(+), 4 deletions(-)
---
diff --git a/pitivi/timeline/elements.py b/pitivi/timeline/elements.py
index dc4132e..cead1c0 100644
--- a/pitivi/timeline/elements.py
+++ b/pitivi/timeline/elements.py
@@ -774,13 +774,21 @@ class Line(Clutter.Actor):
if self.gotDragged:
self.gotDragged = False
return
- x, y = self.transposeXY(event.x, event.y)
- value = 1.0 - (y / EXPANDED_SIZE)
- value = max(0.0, value)
- value = min(1.0, value)
+ x, unused_y = self.transposeXY(event.x, event.y)
timestamp = Zoomable.pixelToNs(x)
+ value = self._valueAtTimestamp(timestamp)
self.timelineElement.addKeyframe(value, timestamp)
+ def _valueAtTimestamp(self, timestamp):
+ timestamp_left = self.previousKeyframe.value.timestamp
+ value_left = self.previousKeyframe.value.value
+ timestamp_right = self.nextKeyframe.value.timestamp
+ value_right = self.nextKeyframe.value.value
+ height = value_right - value_left
+ duration = timestamp_right - timestamp_left
+ value = value_right - (timestamp_right - timestamp) * height / duration
+ return max(0.0, min(value, 1.0))
+
def _enterEventCb(self, unused_actor, unused_event):
self.timelineElement.set_reactive(False)
self.timelineElement.timeline._container.embed.get_window().set_cursor(DRAG_CURSOR)
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]