1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-08-09 16:41:14 +02:00

Bug 367 (P2) - fix regression where tracks could not be dragged in normal (non-sync) mode under certain conditions

This commit is contained in:
mchinen 2011-04-18 18:54:18 +00:00
parent 2ea3fd6553
commit 2b44e117bf

View File

@ -7555,18 +7555,7 @@ bool TrackPanel::MoveClipToTrack(WaveClip *clip,
// Get the second track of two stereo tracks
src2 = (WaveTrack*)mTracks->GetLink(src);
if (clip2 && !src2) {
// if we are copying two mono linked tracks we have to ask for it differently
src2 = (WaveTrack*)mTracks->GetNext(src, false);
if (src2 && src2->GetKind() != Track::Wave)
src2 = NULL;
}
dst2 = (WaveTrack*)mTracks->GetLink(dst);
if (clip2 && !dst2) {
dst2 = (WaveTrack*)mTracks->GetNext(dst, false);
if (dst2 && dst2->GetKind() != Track::Wave)
dst2 = NULL;
}
if ((src2 && !dst2) || (dst2 && !src2))
return false; // cannot move stereo- to mono track or other way around
@ -7575,6 +7564,28 @@ bool TrackPanel::MoveClipToTrack(WaveClip *clip,
return false;
if (clip2) {
// linking can cause pairs of mono tracks to get here.
// allow this case (both these won't have links)
if ((!src2 && !dst2) && (dst2 || src2))
return false;
if (!src2) {
// if we are copying two mono linked tracks we have to ask for it differently
src2 = (WaveTrack*)mTracks->GetNext(src, false);
if (src2 && src2->GetKind() != Track::Wave)
src2 = NULL;
}
if (!dst2) {
dst2 = (WaveTrack*)mTracks->GetNext(dst, false);
if (dst2 && dst2->GetKind() != Track::Wave)
dst2 = NULL;
}
// we should have a source and dest track
if (!dst2 || !src2)
return false;
if (!dst2->CanInsertClip(clip2))
return false;
}