diff options
author | Walter Bender <walter.bender@gmail.com> | 2012-04-10 21:51:07 (GMT) |
---|---|---|
committer | Walter Bender <walter.bender@gmail.com> | 2012-04-10 21:51:07 (GMT) |
commit | 60d0d9caec902cf6824ce01368436e58925ceff4 (patch) | |
tree | d0be389d542b9cd08f1ec207fc0fd3aa6f28f2f1 /TurtleArt/tawindow.py | |
parent | a331be739602246b761d9d2035b5fd5a71208ff8 (diff) |
scroll canvas on drag
Diffstat (limited to 'TurtleArt/tawindow.py')
-rw-r--r-- | TurtleArt/tawindow.py | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/TurtleArt/tawindow.py b/TurtleArt/tawindow.py index c1fa4a6..f6c41b4 100644 --- a/TurtleArt/tawindow.py +++ b/TurtleArt/tawindow.py @@ -201,6 +201,7 @@ class TurtleArtWindow(): self.drag_group = None self.drag_turtle = 'move', 0, 0 self.drag_pos = 0, 0 + self.dragging_canvas = [False, 0, 0] self.turtle_movement_to_share = None self.paste_offset = 20 # Don't paste on top of where you copied. @@ -1181,8 +1182,12 @@ class TurtleArtWindow(): self.dx = 0 self.dy = 0 + self.dragging_canvas[1] = x + self.dragging_canvas[2] = y if spr is None: + self.dragging_canvas[0] = True return True + self.dragging_canvas[0] = False self.selected_spr = spr # From the sprite at x, y, look for a corresponding block @@ -1685,6 +1690,16 @@ class TurtleArtWindow(): def _mouse_move(self, x, y): """ Process mouse movements """ + + if self.dragging_canvas[0]: + dx = self.dragging_canvas[1] - x + dy = self.dragging_canvas[2] - y + self.dragging_canvas[1] = x + self.dragging_canvas[2] = y + if self.running_sugar: + self.activity.adjust_sw(dx, dy) + return True + self.block_operation = 'move' # First, check to see if we are dragging or rotating a turtle. @@ -1853,6 +1868,13 @@ class TurtleArtWindow(): return True def button_release(self, x, y): + if self.dragging_canvas[0]: + self.dragging_canvas[0] = False + self.dragging_canvas[1] = x + self.dragging_canvas[2] = y + self.activity.adjust_palette() + return True + # We may have been moving the turtle if self.selected_turtle is not None: (tx, ty) = self.selected_turtle.get_xy() |