From 920970c7c0de2139ca1aa8ebb30598017b060144 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Tue, 25 Sep 2018 16:38:05 -0400 Subject: [PATCH] Enable snapping to other tracks, time-shifting with Shift key down... ...It seems that was inadvertently disabled when note tracks were first added. Also remove unnecessary #ifdef branch. --- src/tracks/ui/TimeShiftHandle.cpp | 27 +++------------------------ 1 file changed, 3 insertions(+), 24 deletions(-) diff --git a/src/tracks/ui/TimeShiftHandle.cpp b/src/tracks/ui/TimeShiftHandle.cpp index 7ebd49ccb..0b2129906 100644 --- a/src/tracks/ui/TimeShiftHandle.cpp +++ b/src/tracks/ui/TimeShiftHandle.cpp @@ -578,9 +578,8 @@ UIHandle::Result TimeShiftHandle::Drag desiredSlideAmount = viewInfo.PositionToTime(event.m_x) - viewInfo.PositionToTime(mMouseClickX); - bool trySnap = false; double clipLeft = 0, clipRight = 0; -#ifdef USE_MIDI + if (pTrack->GetKind() == Track::Wave) { WaveTrack *const mtw = static_cast(pTrack.get()); const double rate = mtw->GetRate(); @@ -589,8 +588,7 @@ UIHandle::Result TimeShiftHandle::Drag } // Adjust desiredSlideAmount using SnapManager - if (mSnapManager.get() && mClipMoveState.capturedClipArray.size()) { - trySnap = true; + if (mSnapManager.get()) { if (mClipMoveState.capturedClip) { clipLeft = mClipMoveState.capturedClip->GetStartTime() + desiredSlideAmount; @@ -601,26 +599,7 @@ UIHandle::Result TimeShiftHandle::Drag clipLeft = mCapturedTrack->GetStartTime() + desiredSlideAmount; clipRight = mCapturedTrack->GetEndTime() + desiredSlideAmount; } - } -#else - { - trySnap = true; - if (pTrack->GetKind() == Track::Wave) { - auto wt = static_cast(pTrack.get()); - const double rate = wt->GetRate(); - // set it to a sample point - desiredSlideAmount = rint(desiredSlideAmount * rate) / rate; - if (mSnapManager && mClipMoveState.capturedClip) { - clipLeft = mClipMoveState.capturedClip->GetStartTime() - + desiredSlideAmount; - clipRight = mClipMoveState.capturedClip->GetEndTime() - + desiredSlideAmount; - } - } - } -#endif - if (trySnap) - { + auto results = mSnapManager->Snap(mCapturedTrack.get(), clipLeft, false); auto newClipLeft = results.outTime;