diff options
author | Carl Hetherington <carl@carlh.net> | 2010-08-25 12:23:52 +0000 |
---|---|---|
committer | Carl Hetherington <carl@carlh.net> | 2010-08-25 12:23:52 +0000 |
commit | 3825e3d51ce6e447fe433440ce1ffaf77535923a (patch) | |
tree | 973534e6d049d9a5f24493c4c546c82d02d42330 /gtk2_ardour | |
parent | be85889464470e66e33f6f09f3cf1a64ef3c5063 (diff) |
Snap to grid when drawing MIDI regions. Fixes #3412.
git-svn-id: svn://localhost/ardour2/branches/3.0@7679 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index fe629f65ca..c13781c42c 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -1596,18 +1596,19 @@ RegionCreateDrag::RegionCreateDrag (Editor* e, ArdourCanvas::Item* i, TimeAxisVi } void -RegionCreateDrag::motion (GdkEvent *, bool first_move) +RegionCreateDrag::motion (GdkEvent* event, bool first_move) { if (first_move) { /* don't use a zero-length region otherwise its region view will be hidden when it is created */ _region = _view->add_region (grab_frame(), 1, false); } else { - if (_drags->current_pointer_frame() < grab_frame()) { - _region->set_position (_drags->current_pointer_frame(), this); + framepos_t const f = adjusted_current_frame (event); + if (f < grab_frame()) { + _region->set_position (f, this); } /* again, don't use a zero-length region (see above) */ - framecnt_t const len = abs (_drags->current_pointer_frame() - grab_frame ()); + framecnt_t const len = abs (f - grab_frame ()); _region->set_length (len < 1 ? 1 : len, this); } } |