1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-17 00:57:40 +02:00

bug 310 - fix initial shift-selection conditions

This commit is contained in:
mchinen 2011-03-13 22:43:48 +00:00
parent c576fc4893
commit 98182821d6

View File

@ -1819,6 +1819,8 @@ void TrackPanel::HandleSelect(wxMouseEvent & event)
void TrackPanel::SelectionHandleClick(wxMouseEvent & event,
Track * pTrack, wxRect r)
{
Track *rightTrack = NULL;
bool nextTrackIsLinkFromPTrack = false;
mCapturedTrack = pTrack;
mCapturedRect = r;
@ -1854,14 +1856,25 @@ void TrackPanel::SelectionHandleClick(wxMouseEvent & event,
double selend = PositionToTime(event.m_x, r.x);
TrackListIterator iter(mTracks);
for (Track *t = iter.First(); t; t = iter.Next())
for (Track *t = iter.First(); t; t = iter.Next()) {
if (t->GetSelected()) {
isAtLeastOneTrackSelected = true;
break;
} else if (t == pTrack && t->GetLinked()) {
nextTrackIsLinkFromPTrack = true;
} else if (nextTrackIsLinkFromPTrack) {
rightTrack = t;
nextTrackIsLinkFromPTrack = false;
}
}
if (!isAtLeastOneTrackSelected)
if (!isAtLeastOneTrackSelected) {
pTrack->SetSelected(true);
if (rightTrack)
rightTrack->SetSelected(true);
else if (pTrack->GetLink())
pTrack->GetLink()->SetSelected(true);
}
// Edit the selection boundary nearest the mouse click.
if (fabs(selend - mViewInfo->sel0) < fabs(selend - mViewInfo->sel1))