Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBruno Coudoin <bruno.coudoin@free.fr>2009-11-11 18:59:52 (GMT)
committer Bruno Coudoin <bruno.coudoin@free.fr>2009-11-11 18:59:52 (GMT)
commitd60371b01e9973a3c6ca6dba4ce92344abed401d (patch)
treec0753d976c7e99b01b685b3a38c3d0fe1be86819
parent5229cc8bc843c26c0bed131eee9a036ccd144e13 (diff)
Fixed moving flipped items towards the top left or right.
-rw-r--r--src/anim-activity/AnimItem.py27
1 files changed, 18 insertions, 9 deletions
diff --git a/src/anim-activity/AnimItem.py b/src/anim-activity/AnimItem.py
index 98ab509..fc38573 100644
--- a/src/anim-activity/AnimItem.py
+++ b/src/anim-activity/AnimItem.py
@@ -217,6 +217,10 @@ class AnimItem:
if(y > self.drawing_area[3]):
y = self.drawing_area[3]
+ if self.item:
+ return AnimItem.anim.gcomprisBoard.canvas.\
+ convert_to_item_space(self.item, x, y)
+
result = []
tmp = round(((x+(self.step)) -
self.drawing_area[0])/self.step) - 1
@@ -226,10 +230,6 @@ class AnimItem:
self.drawing_area[1])/self.step) - 1
result.append(float(self.drawing_area[1] + tmp*self.step))
- if self.item:
- return AnimItem.anim.gcomprisBoard.canvas.\
- convert_to_item_space(self.item, x, y)
-
return result
# Given two points p1 and p2, return the
@@ -373,18 +373,27 @@ class AnimItem:
self.old_y = 0
self.save_at_time(AnimItem.anim.doc.timeline.get_time())
elif event.type == gtk.gdk.BUTTON_PRESS:
+ #(event.x, event.y) = AnimItem.anim.gcomprisBoard.canvas.\
+ # convert_from_item_space(item, event.x, event.y)
+ #print event.x, " ", event.y
self.old_x = event.x
self.old_y = event.y
elif event.type == gtk.gdk.MOTION_NOTIFY:
+ #(event.x, event.y) = AnimItem.anim.gcomprisBoard.canvas.\
+ # convert_from_item_space(item, event.x, event.y)
dx = event.x - self.old_x
dy = event.y - self.old_y
+ flip_x = 1
+ if item.get_transform() and item.get_transform()[0] < 0:
+ flip_x = -1
+
bounds = self.item.get_bounds()
# Check drawing boundaries
- if(bounds.x1 + dx < self.drawing_area[0]):
- dx = self.drawing_area[0] - bounds.x1
- if(bounds.x2 + dx > self.drawing_area[2]):
- dx = self.drawing_area[2] - bounds.x2
+ if(bounds.x1 + dx * flip_x < self.drawing_area[0]):
+ dx = (self.drawing_area[0] - bounds.x1) * flip_x
+ if(bounds.x2 + dx * flip_x > self.drawing_area[2]):
+ dx = (self.drawing_area[2] - bounds.x2) *flip_x
if(bounds.y1 + dy < self.drawing_area[1]):
dy = self.drawing_area[1]- bounds.y1
if(bounds.y2 + dy > self.drawing_area[3]):
@@ -577,7 +586,7 @@ class Anchor:
self.fixed_y = 0
self.offset_x = 0
self.offset_y = 0
- self.animitem.save_at_time(self.animitem.anim.timeline.get_time())
+ self.animitem.save_at_time(self.animitem.anim.doc.timeline.get_time())
elif (event.type == gtk.gdk.MOTION_NOTIFY
and event.state & gtk.gdk.BUTTON1_MASK):