diff --git a/src/Project.cpp b/src/Project.cpp index 60509385b..986058fa3 100644 --- a/src/Project.cpp +++ b/src/Project.cpp @@ -1867,52 +1867,6 @@ void AudacityProject::OnScroll(wxScrollEvent & WXUNUSED(event)) } } -// Called from the CommandMananger -bool AudacityProject::HandleKeyDown(wxKeyEvent & event) -{ - if (event.GetKeyCode() == WXK_ESCAPE) - mTrackPanel->HandleEscapeKey(true); - - if (event.GetKeyCode() == WXK_ALT) - mTrackPanel->HandleAltKey(true); - - // Allow the zoom cursor to change to a zoom out cursor - if (event.GetKeyCode() == WXK_SHIFT) - mTrackPanel->HandleShiftKey(true); - - if (event.GetKeyCode() == WXK_CONTROL) - mTrackPanel->HandleControlKey(true); - - // Allow PageUp and PageDown keys to - //scroll the Track Panel left and right - if (event.GetKeyCode() == WXK_PAGEUP) - mTrackPanel->HandlePageUpKey(); - - if (event.GetKeyCode() == WXK_PAGEDOWN) - mTrackPanel->HandlePageDownKey(); - - return true; -} - -// Called from the CommandMananger -bool AudacityProject::HandleKeyUp(wxKeyEvent & event) -{ - if (event.GetKeyCode() == WXK_ESCAPE) - mTrackPanel->HandleEscapeKey(false); - - if (event.GetKeyCode() == WXK_ALT) - mTrackPanel->HandleAltKey(false); - - // Allow the Zoom Out cursor back to Zoom In - if (event.GetKeyCode() == WXK_SHIFT) - mTrackPanel->HandleShiftKey(false); - - if (event.GetKeyCode() == WXK_CONTROL) - mTrackPanel->HandleControlKey(false); - - return true; -} - /// Determines if flags for command are compatible with current state. /// If not, then try some recovery action to make it so. /// @return whether compatible or not after any actions taken. diff --git a/src/Project.h b/src/Project.h index 322dabba2..d93d4fafa 100644 --- a/src/Project.h +++ b/src/Project.h @@ -299,9 +299,6 @@ class AUDACITY_DLL_API AudacityProject: public wxFrame, void OnODTaskComplete(wxCommandEvent & event); void OnTrackListUpdated(wxCommandEvent & event); - bool HandleKeyDown(wxKeyEvent & event); - bool HandleKeyUp(wxKeyEvent & event); - void HandleResize(); void UpdateLayout(); void ZoomInByFactor( double ZoomFactor ); diff --git a/src/TrackPanel.cpp b/src/TrackPanel.cpp index 2e3dcfd0c..f7b9248e9 100644 --- a/src/TrackPanel.cpp +++ b/src/TrackPanel.cpp @@ -324,6 +324,7 @@ BEGIN_EVENT_TABLE(TrackPanel, wxWindow) EVT_MOUSE_CAPTURE_LOST(TrackPanel::OnCaptureLost) EVT_COMMAND(wxID_ANY, EVT_CAPTURE_KEY, TrackPanel::OnCaptureKey) EVT_KEY_DOWN(TrackPanel::OnKeyDown) + EVT_KEY_DOWN(TrackPanel::OnKeyUp) EVT_CHAR(TrackPanel::OnChar) EVT_SIZE(TrackPanel::OnSize) EVT_ERASE_BACKGROUND(TrackPanel::OnErase) @@ -6245,6 +6246,27 @@ void TrackPanel::OnCaptureKey(wxCommandEvent & event) /// Allow typing into LabelTracks. void TrackPanel::OnKeyDown(wxKeyEvent & event) { + if (event.GetKeyCode() == WXK_ESCAPE) + HandleEscapeKey(true); + + if (event.GetKeyCode() == WXK_ALT) + HandleAltKey(true); + + // Allow the zoom cursor to change to a zoom out cursor + if (event.GetKeyCode() == WXK_SHIFT) + HandleShiftKey(true); + + if (event.GetKeyCode() == WXK_CONTROL) + HandleControlKey(true); + + // Allow PageUp and PageDown keys to + //scroll the Track Panel left and right + if (event.GetKeyCode() == WXK_PAGEUP) + HandlePageUpKey(); + + if (event.GetKeyCode() == WXK_PAGEDOWN) + HandlePageDownKey(); + Track *t = GetFocusedTrack(); // Only deal with LabelTracks @@ -6307,6 +6329,23 @@ void TrackPanel::OnChar(wxKeyEvent & event) RefreshTrack(t); } +void TrackPanel::OnKeyUp(wxKeyEvent & event) +{ + if (event.GetKeyCode() == WXK_ESCAPE) + HandleEscapeKey(false); + + if (event.GetKeyCode() == WXK_ALT) + HandleAltKey(false); + + // Allow the Zoom Out cursor back to Zoom In + if (event.GetKeyCode() == WXK_SHIFT) + HandleShiftKey(false); + + if (event.GetKeyCode() == WXK_CONTROL) + HandleControlKey(false); + +} + /// Should handle the case when the mouse capture is lost. void TrackPanel::OnCaptureLost(wxMouseCaptureLostEvent & WXUNUSED(event)) { diff --git a/src/TrackPanel.h b/src/TrackPanel.h index c46d4e1e1..358335bf1 100644 --- a/src/TrackPanel.h +++ b/src/TrackPanel.h @@ -147,6 +147,7 @@ class AUDACITY_DLL_API TrackPanel:public wxPanel { virtual void OnCaptureKey(wxCommandEvent & event); virtual void OnKeyDown(wxKeyEvent & event); virtual void OnChar(wxKeyEvent & event); + virtual void OnKeyUp(wxKeyEvent & event); virtual void OnSetFocus(wxFocusEvent & event); virtual void OnKillFocus(wxFocusEvent & event);