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

Bug1442 again: Fix TAB cycle through labels, special case...

This commit is contained in:
Paul Licameli 2016-07-13 14:18:27 -04:00
commit 35514b7a3e

View File

@ -1674,6 +1674,12 @@ bool LabelTrack::CaptureKey(wxKeyEvent & event)
return false; return false;
} }
// Always capture the navigation keys, if we have any labels
auto code = event.GetKeyCode();
if ((code == WXK_TAB || code == WXK_NUMPAD_TAB) &&
!mLabels.empty())
return true;
if (mSelIndex >= 0) { if (mSelIndex >= 0) {
if (IsGoodLabelEditKey(event)) { if (IsGoodLabelEditKey(event)) {
return true; return true;
@ -1897,7 +1903,7 @@ bool LabelTrack::OnKeyDown(SelectedRegion &newSel, wxKeyEvent & event)
mSelIndex = len - 1; mSelIndex = len - 1;
if (newSel.t0() > mLabels[0].getT0()) { if (newSel.t0() > mLabels[0].getT0()) {
while (mSelIndex >= 0 && while (mSelIndex >= 0 &&
mLabels[mSelIndex].getT0() >= newSel.t0()) { mLabels[mSelIndex].getT0() > newSel.t0()) {
mSelIndex--; mSelIndex--;
} }
} }
@ -1905,7 +1911,7 @@ bool LabelTrack::OnKeyDown(SelectedRegion &newSel, wxKeyEvent & event)
mSelIndex = 0; mSelIndex = 0;
if (newSel.t0() < mLabels[len - 1].getT0()) { if (newSel.t0() < mLabels[len - 1].getT0()) {
while (mSelIndex < len && while (mSelIndex < len &&
mLabels[mSelIndex].getT0() <= newSel.t0()) { mLabels[mSelIndex].getT0() < newSel.t0()) {
mSelIndex++; mSelIndex++;
} }
} }