diff options
author | Carl Hetherington <carl@carlh.net> | 2010-01-12 16:14:49 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-01-12 16:14:49 +0000 |
commit | 11bd4eed89f79927f2f7d8cab50a60380cf9e49e (patch) | |
tree | 7b44c72e1e6c1d29b5a1639fce9103b07064196b /gtk2_ardour/editor_rulers.cc | |
parent | 642f41b82fc710246ee85dbc09eaa19ee6c3e633 (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.cc | 14 |
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; |