Bug2159 re-fixed after ed33fde: see first fix at 7969b5a

This commit is contained in:
Paul Licameli 2019-07-18 12:57:35 -04:00
parent 13348841c0
commit 7c17c158fd
2 changed files with 15 additions and 11 deletions

View File

@ -935,10 +935,10 @@ AdornedRulerPanel::AdornedRulerPanel(AudacityProject* project,
#endif
wxTheApp->Bind(EVT_AUDIOIO_CAPTURE,
&AdornedRulerPanel::OnRecordStartStop,
&AdornedRulerPanel::OnAudioStartStop,
this);
wxTheApp->Bind(EVT_AUDIOIO_PLAYBACK,
&AdornedRulerPanel::OnRecordStartStop,
&AdornedRulerPanel::OnAudioStartStop,
this);
// Delay until after CommandManager has been populated:
@ -1149,7 +1149,7 @@ void AdornedRulerPanel::DoIdle()
mDirtySelectedRegion = false;
}
void AdornedRulerPanel::OnRecordStartStop(wxCommandEvent & evt)
void AdornedRulerPanel::OnAudioStartStop(wxCommandEvent & evt)
{
evt.Skip();
@ -1168,11 +1168,9 @@ void AdornedRulerPanel::OnRecordStartStop(wxCommandEvent & evt)
}
}
if ( evt.GetInt() == 0 ) {
if ( evt.GetInt() == 0 )
// So that the play region is updated
mDirtySelectedRegion = true;
DoIdle();
}
DoSelectionChange( mViewInfo->selectedRegion );
}
void AdornedRulerPanel::OnPaint(wxPaintEvent & WXUNUSED(evt))
@ -1231,14 +1229,19 @@ void AdornedRulerPanel::OnThemeChange(wxCommandEvent& evt)
void AdornedRulerPanel::OnSelectionChange(SelectedRegionEvent& evt)
{
evt.Skip();
if (!evt.pRegion)
return;
auto &selectedRegion = *evt.pRegion;
DoSelectionChange( selectedRegion );
}
void AdornedRulerPanel::DoSelectionChange( const SelectedRegion &selectedRegion )
{
auto gAudioIO = AudioIOBase::Get();
if ( !gAudioIO->IsBusy() &&
!ViewInfo::Get( *mProject ).playRegion.Locked()
) {
if (!evt.pRegion)
return;
auto &selectedRegion = *evt.pRegion;
SetPlayRegion( selectedRegion.t0(), selectedRegion.t1() );
}
}

View File

@ -82,11 +82,12 @@ public:
private:
void DoIdle();
void OnIdle( wxIdleEvent &evt );
void OnRecordStartStop(wxCommandEvent & evt);
void OnAudioStartStop(wxCommandEvent & evt);
void OnPaint(wxPaintEvent &evt);
void OnSize(wxSizeEvent &evt);
void OnThemeChange(wxCommandEvent& evt);
void OnSelectionChange(SelectedRegionEvent& evt);
void DoSelectionChange( const SelectedRegion &selectedRegion );
bool UpdateRects();
void HandleQPClick(wxMouseEvent &event, wxCoord mousePosX);
void HandleQPDrag(wxMouseEvent &event, wxCoord mousePosX);