1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-15 15:11:12 +02:00

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.
This commit is contained in:
Paul Licameli
2018-09-25 16:38:05 -04:00
parent 2ff75acffa
commit 920970c7c0

View File

@@ -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<WaveTrack*>(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<const WaveTrack *>(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;