diff options
author | nick_m <mainsbridge@gmail.com> | 2015-12-08 03:36:53 +1100 |
---|---|---|
committer | nick_m <mainsbridge@gmail.com> | 2015-12-08 03:36:53 +1100 |
commit | c4203f848e35d7d5fd63426a2705903b098a1a90 (patch) | |
tree | ba8d8c795f506192d6fdd1d044ba057ba5a20b8a /gtk2_ardour | |
parent | 1918fe43fa31f45251601891b911d038518c66e1 (diff) |
Don't snap twice when moving regions.
Diffstat (limited to 'gtk2_ardour')
-rw-r--r-- | gtk2_ardour/editor_drag.cc | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/gtk2_ardour/editor_drag.cc b/gtk2_ardour/editor_drag.cc index 456c6c49c8..aa0038dac7 100644 --- a/gtk2_ardour/editor_drag.cc +++ b/gtk2_ardour/editor_drag.cc @@ -645,7 +645,7 @@ RegionMotionDrag::compute_x_delta (GdkEvent const * event, framepos_t* pending_r /* compute the amount of pointer motion in frames, and where the region would be if we moved it by that much. */ - *pending_region_position = adjusted_frame (_drags->current_pointer_frame () + snap_delta (event->button.state), event, true); + *pending_region_position = adjusted_frame (_drags->current_pointer_frame (), event, false); framepos_t sync_frame; framecnt_t sync_offset; @@ -657,11 +657,12 @@ RegionMotionDrag::compute_x_delta (GdkEvent const * event, framepos_t* pending_r */ if (sync_dir >= 0 || (sync_dir < 0 && *pending_region_position >= sync_offset)) { - sync_frame = *pending_region_position + (sync_dir * sync_offset); + framecnt_t const sd = snap_delta (event->button.state); + sync_frame = *pending_region_position + (sync_dir * sync_offset) + sd; _editor->snap_to_with_modifier (sync_frame, event); - *pending_region_position = _primary->region()->adjust_to_sync (sync_frame) - snap_delta (event->button.state); + *pending_region_position = _primary->region()->adjust_to_sync (sync_frame) - sd; } else { *pending_region_position = _last_frame_position; |