From fab1a2778b31e431a7feaf7d899f62dbcd395682 Mon Sep 17 00:00:00 2001 From: James Crook Date: Mon, 14 Aug 2017 19:58:02 +0100 Subject: [PATCH] Bug 753 - Sort Tracks by Name may misbehave with stereo tracks. --- src/Menus.cpp | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/Menus.cpp b/src/Menus.cpp index e4c11687e..1195a54ca 100644 --- a/src/Menus.cpp +++ b/src/Menus.cpp @@ -2815,9 +2815,14 @@ void AudacityProject::SortTracks(int flags) ndx++; } else { + bool bArrayTrackLinked = false; for (ndx = 0; ndx < arr.size(); ++ndx) { Track &arrTrack = **arr[ndx]; - if(flags & kAudacitySortByName) { + // Don't insert between channels of a stereo track! + if( bArrayTrackLinked ){ + bArrayTrackLinked = false; + } + else if(flags & kAudacitySortByName) { //do case insensitive sort - cmpNoCase returns less than zero if the string is 'less than' its argument //also if we have case insensitive equality, then we need to sort by case as well //We sort 'b' before 'B' accordingly. We uncharacteristically use greater than for the case sensitive @@ -2864,6 +2869,7 @@ void AudacityProject::SortTracks(int flags) ndx+=candidatesLookedAt; } + bArrayTrackLinked = arrTrack.GetLinked(); } } arr.insert(arr.begin() + ndx, iter);