mirror of
https://github.com/cookiengineer/audacity
synced 2025-06-16 16:10:06 +02:00
Merge branch 'master' into scrubbing2
This commit is contained in:
commit
38eab236b6
@ -8710,7 +8710,7 @@ void TrackPanel::SetFocusedTrack( Track *t )
|
||||
if (t && !t->GetLinked() && t->GetLink())
|
||||
t = (WaveTrack*)t->GetLink();
|
||||
|
||||
if (AudacityProject::GetKeyboardCaptureHandler()) {
|
||||
if (t && AudacityProject::GetKeyboardCaptureHandler()) {
|
||||
AudacityProject::ReleaseKeyboard(this);
|
||||
}
|
||||
|
||||
|
@ -1781,11 +1781,16 @@ BEGIN_EVENT_TABLE(AdornedRulerPanel, wxPanel)
|
||||
EVT_MENU(OnShowHideScrubbingID, AdornedRulerPanel::OnToggleScrubbing)
|
||||
|
||||
// Key events, to navigate buttons
|
||||
EVT_COMMAND(wxID_ANY, EVT_CAPTURE_KEY, AdornedRulerPanel::OnCaptureKey)
|
||||
EVT_KEY_DOWN(AdornedRulerPanel::OnKeyDown)
|
||||
|
||||
// Correct management of track focus
|
||||
EVT_SET_FOCUS(AdornedRulerPanel::OnSetFocus)
|
||||
EVT_KILL_FOCUS(AdornedRulerPanel::OnKillFocus)
|
||||
|
||||
// Pop up menus on Windows
|
||||
EVT_CONTEXT_MENU(AdornedRulerPanel::OnContextMenu)
|
||||
|
||||
END_EVENT_TABLE()
|
||||
|
||||
AdornedRulerPanel::AdornedRulerPanel(AudacityProject* parent,
|
||||
@ -2251,6 +2256,10 @@ bool AdornedRulerPanel::IsWithinMarker(int mousePosX, double markerTime)
|
||||
|
||||
void AdornedRulerPanel::OnMouseEvents(wxMouseEvent &evt)
|
||||
{
|
||||
// PRL: why do I need these two lines on Windows but not on Mac?
|
||||
if (evt.ButtonDown(wxMOUSE_BTN_ANY))
|
||||
SetFocus();
|
||||
|
||||
// Disable mouse actions on Timeline while recording.
|
||||
if (mIsRecording) {
|
||||
if (HasCapture())
|
||||
@ -2754,6 +2763,31 @@ void AdornedRulerPanel::OnToggleScrubbing(wxCommandEvent&)
|
||||
PostSizeEventToParent();
|
||||
}
|
||||
|
||||
void AdornedRulerPanel::OnCaptureKey(wxCommandEvent &event)
|
||||
{
|
||||
wxKeyEvent *kevent = (wxKeyEvent *)event.GetEventObject();
|
||||
int keyCode = kevent->GetKeyCode();
|
||||
|
||||
switch (keyCode)
|
||||
{
|
||||
case WXK_DOWN:
|
||||
case WXK_NUMPAD_DOWN:
|
||||
case WXK_UP:
|
||||
case WXK_NUMPAD_UP:
|
||||
case WXK_TAB:
|
||||
case WXK_NUMPAD_TAB:
|
||||
case WXK_RIGHT:
|
||||
case WXK_NUMPAD_RIGHT:
|
||||
case WXK_LEFT:
|
||||
case WXK_NUMPAD_LEFT:
|
||||
case WXK_RETURN:
|
||||
case WXK_NUMPAD_ENTER:
|
||||
return;
|
||||
}
|
||||
|
||||
event.Skip();
|
||||
}
|
||||
|
||||
void AdornedRulerPanel::OnKeyDown(wxKeyEvent &event)
|
||||
{
|
||||
switch (event.GetKeyCode())
|
||||
@ -2801,12 +2835,14 @@ void AdornedRulerPanel::OnKeyDown(wxKeyEvent &event)
|
||||
break;
|
||||
|
||||
default:
|
||||
event.Skip();
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
void AdornedRulerPanel::OnSetFocus(wxFocusEvent & WXUNUSED(event))
|
||||
{
|
||||
AudacityProject::CaptureKeyboard(this);
|
||||
mProject->GetTrackPanel()->SetFocusedTrack(nullptr);
|
||||
mTabState = TabState{};
|
||||
Refresh( false );
|
||||
@ -2814,7 +2850,15 @@ void AdornedRulerPanel::OnSetFocus(wxFocusEvent & WXUNUSED(event))
|
||||
|
||||
void AdornedRulerPanel::OnKillFocus(wxFocusEvent & WXUNUSED(event))
|
||||
{
|
||||
Refresh( false );
|
||||
AudacityProject::ReleaseKeyboard(this);
|
||||
Refresh(false);
|
||||
}
|
||||
|
||||
void AdornedRulerPanel::OnContextMenu(wxContextMenuEvent & WXUNUSED(event))
|
||||
{
|
||||
auto rect = GetRect();
|
||||
wxPoint position(rect.GetLeft() + 1, rect.GetBottom() + 1);
|
||||
ShowMenu(position);
|
||||
}
|
||||
|
||||
void AdornedRulerPanel::OnCaptureLost(wxMouseCaptureLostEvent & WXUNUSED(evt))
|
||||
|
@ -474,9 +474,11 @@ private:
|
||||
|
||||
void OnToggleScrubbing(wxCommandEvent&);
|
||||
|
||||
void OnCaptureKey(wxCommandEvent &event);
|
||||
void OnKeyDown(wxKeyEvent &event);
|
||||
void OnSetFocus(wxFocusEvent &);
|
||||
void OnKillFocus(wxFocusEvent &);
|
||||
void OnContextMenu(wxContextMenuEvent & WXUNUSED(event));
|
||||
|
||||
bool mPlayRegionDragsSelection;
|
||||
bool mTimelineToolTip;
|
||||
|
Loading…
x
Reference in New Issue
Block a user