1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-07-27 06:07:59 +02:00

Bug 1484 - No ctrl-click toggling; History for anchor (mLastPickedTrack)

This commit is contained in:
James Crook 2016-10-04 09:05:47 +01:00
parent ea1015596c
commit 44375c252a

View File

@ -1914,6 +1914,11 @@ void TrackPanel::ChangeSelectionOnShiftClick(Track * pTrack){
// We will either extend from the first or from the last.
Track* pExtendFrom= nullptr;
if( mLastPickedTrack ){
pExtendFrom = mLastPickedTrack;
}
else
{
TrackListIterator iter(GetTracks());
for (Track *t = iter.First(); t; t = iter.Next()) {
const bool isSelected = t->GetSelected();
@ -1931,12 +1936,14 @@ void TrackPanel::ChangeSelectionOnShiftClick(Track * pTrack){
// Our track was earlier than the first. Extend from the last.
if( !pExtendFrom )
pExtendFrom = pLast;
}
SelectNone();
if( pExtendFrom )
SelectRangeOfTracks(pTrack, pExtendFrom);
else
SelectTrack( pTrack, true );
mLastPickedTrack = pExtendFrom;
}
/// This method gets called when we're handling selection
@ -1986,13 +1993,13 @@ void TrackPanel::SelectionHandleClick(wxMouseEvent & event,
if( bShiftDown )
ChangeSelectionOnShiftClick( pTrack );
if( bCtrlDown ){
bool bIsSelected = pTrack->GetSelected();
//bool bIsSelected = true;
// could set bIsSelected true here, but toggling is more technically correct.
// if we want to match behaviour in Track Control Panel.
//Commented out bIsSelected toggles, as in Track Control Panel.
//bool bIsSelected = pTrack->GetSelected();
//Actual bIsSelected will always add.
bool bIsSelected = false;
// Don't toggle away the last selected track.
if( !bIsSelected || GetSelectedTrackCount() > 1 )
SelectTrack( pTrack, !bIsSelected, false );
SelectTrack( pTrack, !bIsSelected, true );
}
double value;