summaryrefslogtreecommitdiff
path: root/gtk2_ardour
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-08-25 12:23:52 +0000
committerCarl Hetherington <carl@carlh.net>2010-08-25 12:23:52 +0000
commit3825e3d51ce6e447fe433440ce1ffaf77535923a (patch)
tree973534e6d049d9a5f24493c4c546c82d02d42330 /gtk2_ardour
parentbe85889464470e66e33f6f09f3cf1a64ef3c5063 (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.cc9
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);
}
}