summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_rulers.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-01-12 16:14:49 +0000
committerCarl Hetherington <carl@carlh.net>2010-01-12 16:14:49 +0000
commit11bd4eed89f79927f2f7d8cab50a60380cf9e49e (patch)
tree7b44c72e1e6c1d29b5a1639fce9103b07064196b /gtk2_ardour/editor_rulers.cc
parent642f41b82fc710246ee85dbc09eaa19ee6c3e633 (diff)
Allow multiple simulataneous Drags to be active, and hence set up and drag time ranges when moving regions in PT-edit mode.
git-svn-id: svn://localhost/ardour2/branches/3.0@6478 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/editor_rulers.cc')
-rw-r--r--gtk2_ardour/editor_rulers.cc14
1 files changed, 5 insertions, 9 deletions
diff --git a/gtk2_ardour/editor_rulers.cc b/gtk2_ardour/editor_rulers.cc
index 880b6812b5..73ffcb4467 100644
--- a/gtk2_ardour/editor_rulers.cc
+++ b/gtk2_ardour/editor_rulers.cc
@@ -246,9 +246,7 @@ Editor::ruler_button_press (GdkEventButton* ev)
}
/* playhead cursor */
- assert (_drag == 0);
- _drag = new CursorDrag (this, &playhead_cursor->canvas_item, false);
- _drag->start_grab (reinterpret_cast<GdkEvent *> (ev));
+ _drags->set (new CursorDrag (this, &playhead_cursor->canvas_item, false), reinterpret_cast<GdkEvent *> (ev));
_dragging_playhead = true;
}
@@ -265,10 +263,8 @@ Editor::ruler_button_release (GdkEventButton* ev)
gint x,y;
Gdk::ModifierType state;
- if (_drag) {
- _drag->end_grab (reinterpret_cast<GdkEvent*> (ev));
- delete _drag;
- _drag = 0;
+ if (_drags->active ()) {
+ _drags->end_grab (reinterpret_cast<GdkEvent*> (ev));
_dragging_playhead = false;
}
@@ -312,8 +308,8 @@ Editor::ruler_mouse_motion (GdkEventMotion* ev)
return FALSE;
}
- if (_drag) {
- _drag->motion_handler (reinterpret_cast<GdkEvent*> (ev), false);
+ if (_drags->active ()) {
+ _drags->motion_handler (reinterpret_cast<GdkEvent*> (ev), false);
}
return TRUE;