1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-06-25 16:48:44 +02:00

Make TAB key act as before, when a Label track has focus.

This commit is contained in:
Paul Licameli 2017-07-13 08:09:39 -04:00
parent 5e4f453a81
commit 4d1ce201e4
2 changed files with 16 additions and 8 deletions

View File

@ -1347,18 +1347,15 @@ void TrackPanel::HandleWheelRotation( TrackPanelMouseEvent &tpmEvent )
void TrackPanel::OnCaptureKey(wxCommandEvent & event) void TrackPanel::OnCaptureKey(wxCommandEvent & event)
{ {
mEnableTab = false;
wxKeyEvent *kevent = static_cast<wxKeyEvent *>(event.GetEventObject()); wxKeyEvent *kevent = static_cast<wxKeyEvent *>(event.GetEventObject());
const auto code = kevent->GetKeyCode(); const auto code = kevent->GetKeyCode();
if ( WXK_ESCAPE != code ) if ( WXK_ESCAPE != code )
HandleInterruptedDrag(); HandleInterruptedDrag();
if ( WXK_TAB == code && HasRotation() ) { // TODO? Some notion of focused cell, more generally than focused tracks
// Override what the cell might do, don't call its CaptureKey;
// Also override TAB navigation in wxWidgets, by not skipping
event.Skip(false);
return;
}
// Give focused track precedence
Track * const t = GetFocusedTrack(); Track * const t = GetFocusedTrack();
if (t) { if (t) {
const unsigned refreshResult = const unsigned refreshResult =
@ -1366,7 +1363,16 @@ void TrackPanel::OnCaptureKey(wxCommandEvent & event)
ProcessUIHandleResult(this, mRuler, t, t, refreshResult); ProcessUIHandleResult(this, mRuler, t, t, refreshResult);
event.Skip(kevent->GetSkipped()); event.Skip(kevent->GetSkipped());
} }
else
// Special TAB key handling, but only if the track didn't capture it
if ( !(t && !kevent->GetSkipped()) &&
WXK_TAB == code && HasRotation() ) {
// Override TAB navigation in wxWidgets, by not skipping
event.Skip(false);
mEnableTab = true;
return;
}
else if (!t)
event.Skip(); event.Skip();
} }
@ -1402,7 +1408,7 @@ void TrackPanel::OnKeyDown(wxKeyEvent & event)
return; return;
case WXK_TAB: case WXK_TAB:
if ( HasRotation() ) { if ( mEnableTab && HasRotation() ) {
RotateTarget( !event.ShiftDown() ); RotateTarget( !event.ShiftDown() );
HandleCursorForPresentMouseState(false); HandleCursorForPresentMouseState(false);
return; return;

View File

@ -558,6 +558,8 @@ protected:
std::shared_ptr<TrackPanelCell> mpBackground; std::shared_ptr<TrackPanelCell> mpBackground;
bool mEnableTab{};
DECLARE_EVENT_TABLE() DECLARE_EVENT_TABLE()
}; };