mirror of
https://github.com/cookiengineer/audacity
synced 2025-08-10 17:11:17 +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:
parent
2ea3fd6553
commit
2b44e117bf
@ -7555,18 +7555,7 @@ bool TrackPanel::MoveClipToTrack(WaveClip *clip,
|
|||||||
|
|
||||||
// Get the second track of two stereo tracks
|
// Get the second track of two stereo tracks
|
||||||
src2 = (WaveTrack*)mTracks->GetLink(src);
|
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);
|
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))
|
if ((src2 && !dst2) || (dst2 && !src2))
|
||||||
return false; // cannot move stereo- to mono track or other way around
|
return false; // cannot move stereo- to mono track or other way around
|
||||||
@ -7575,6 +7564,28 @@ bool TrackPanel::MoveClipToTrack(WaveClip *clip,
|
|||||||
return false;
|
return false;
|
||||||
|
|
||||||
if (clip2) {
|
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))
|
if (!dst2->CanInsertClip(clip2))
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user