diff --git a/src/widgets/Ruler.cpp b/src/widgets/Ruler.cpp index 81f3038b9..f0cc3eafd 100644 --- a/src/widgets/Ruler.cpp +++ b/src/widgets/Ruler.cpp @@ -1784,9 +1784,13 @@ BEGIN_EVENT_TABLE(AdornedRulerPanel, wxPanel) 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, @@ -2831,6 +2835,7 @@ void AdornedRulerPanel::OnKeyDown(wxKeyEvent &event) break; default: + event.Skip(); break; } } @@ -2849,6 +2854,13 @@ void AdornedRulerPanel::OnKillFocus(wxFocusEvent & WXUNUSED(event)) 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)) { DrawQuickPlayIndicator(NULL); diff --git a/src/widgets/Ruler.h b/src/widgets/Ruler.h index 5a0421882..1dec74595 100644 --- a/src/widgets/Ruler.h +++ b/src/widgets/Ruler.h @@ -478,6 +478,7 @@ private: void OnKeyDown(wxKeyEvent &event); void OnSetFocus(wxFocusEvent &); void OnKillFocus(wxFocusEvent &); + void OnContextMenu(wxContextMenuEvent & WXUNUSED(event)); bool mPlayRegionDragsSelection; bool mTimelineToolTip;