From e6a9bd70a2bc71cb5e2a6bf388098dc9fe684c50 Mon Sep 17 00:00:00 2001 From: James Crook Date: Sat, 17 Mar 2018 18:28:26 +0000 Subject: [PATCH] Fix SetTrack for stereo tracks. Stereo tracks have selection on both channels. Both must be set or cleared. We also need to explicitly remove focus, if it was set. Code was only setting it. --- src/commands/SetTrackInfoCommand.cpp | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/src/commands/SetTrackInfoCommand.cpp b/src/commands/SetTrackInfoCommand.cpp index 50a2aaed6..696297eb8 100644 --- a/src/commands/SetTrackInfoCommand.cpp +++ b/src/commands/SetTrackInfoCommand.cpp @@ -216,14 +216,20 @@ bool SetTrackCommand::Apply(const CommandContext & context) case kHalfWave: wt->SetDisplayBounds(0,1); break; } } + + // In stereo tracks, both channels need selecting/deselecting. + if( bHasSelected ) + t->SetSelected(bSelected); + // These ones don't make sense on the second channel of a stereo track. if( !bIsSecondChannel ){ - if( bHasSelected ) - t->SetSelected(bSelected); - if( bHasFocused && bFocused) + if( bHasFocused ) { TrackPanel *panel = context.GetProject()->GetTrackPanel(); - panel->SetFocusedTrack( t ); + if( bFocused) + panel->SetFocusedTrack( t ); + else if( t== panel->GetFocusedTrack() ) + panel->SetFocusedTrack( nullptr ); } if( pt && bHasSolo ) pt->SetSolo(bSolo);