mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-15 15:49:36 +02:00
Bug 2547 - Shift + Click may select incorrect tracks
This commit is contained in:
parent
7392e8b619
commit
0c234359af
@ -170,6 +170,10 @@ void DoPrevTrack(
|
|||||||
{
|
{
|
||||||
auto range = tracks.Leaders();
|
auto range = tracks.Leaders();
|
||||||
p = * range.rbegin(); // null if range is empty
|
p = * range.rbegin(); // null if range is empty
|
||||||
|
|
||||||
|
// Deselect all other tracks and select this one.
|
||||||
|
selectionState.SelectNone( tracks );
|
||||||
|
selectionState.SelectTrack( *p, true, true );
|
||||||
trackFocus.Set( p ); // Wrap to the last track
|
trackFocus.Set( p ); // Wrap to the last track
|
||||||
if (p)
|
if (p)
|
||||||
p->EnsureVisible( true );
|
p->EnsureVisible( true );
|
||||||
@ -183,6 +187,9 @@ void DoPrevTrack(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// Deselect all other tracks and select this one.
|
||||||
|
selectionState.SelectNone( tracks );
|
||||||
|
selectionState.SelectTrack( *p, true, true );
|
||||||
trackFocus.Set( p ); // move focus to next track up
|
trackFocus.Set( p ); // move focus to next track up
|
||||||
p->EnsureVisible( true );
|
p->EnsureVisible( true );
|
||||||
return;
|
return;
|
||||||
@ -205,6 +212,9 @@ void DoNextTrack(
|
|||||||
if( t == NULL ) // if there isn't one, focus on first
|
if( t == NULL ) // if there isn't one, focus on first
|
||||||
{
|
{
|
||||||
t = *tracks.Any().begin();
|
t = *tracks.Any().begin();
|
||||||
|
// Deselect all other tracks and select this one.
|
||||||
|
selectionState.SelectNone( tracks );
|
||||||
|
selectionState.SelectTrack( *t, true, true );
|
||||||
trackFocus.Set( t );
|
trackFocus.Set( t );
|
||||||
if (t)
|
if (t)
|
||||||
t->EnsureVisible( true );
|
t->EnsureVisible( true );
|
||||||
@ -273,6 +283,10 @@ void DoNextTrack(
|
|||||||
if( circularTrackNavigation )
|
if( circularTrackNavigation )
|
||||||
{
|
{
|
||||||
n = *tracks.Any().begin();
|
n = *tracks.Any().begin();
|
||||||
|
|
||||||
|
// Deselect all other tracks and select this one.
|
||||||
|
selectionState.SelectNone( tracks );
|
||||||
|
selectionState.SelectTrack( *n, true, true );
|
||||||
trackFocus.Set( n ); // Wrap to the first track
|
trackFocus.Set( n ); // Wrap to the first track
|
||||||
if (n)
|
if (n)
|
||||||
n->EnsureVisible( true );
|
n->EnsureVisible( true );
|
||||||
@ -286,6 +300,9 @@ void DoNextTrack(
|
|||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
|
// Deselect all other tracks and select this one.
|
||||||
|
selectionState.SelectNone( tracks );
|
||||||
|
selectionState.SelectTrack( *n, true, true );
|
||||||
trackFocus.Set( n ); // move focus to next track down
|
trackFocus.Set( n ); // move focus to next track down
|
||||||
n->EnsureVisible( true );
|
n->EnsureVisible( true );
|
||||||
return;
|
return;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user