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

Bug1365: Do not confuse Linux key event handling...

This commit is contained in:
Paul Licameli 2016-05-18 10:11:37 -04:00
commit 62c82f94df
2 changed files with 10 additions and 5 deletions

View File

@ -2293,9 +2293,7 @@ void AudioIO::StopStream()
while( mAudioThreadShouldCallFillBuffersOnce == true ) while( mAudioThreadShouldCallFillBuffersOnce == true )
{ {
// LLL: Experienced recursive yield here...once. // LLL: Experienced recursive yield here...once.
// PRL: Made it safe yield to avoid a certain recursive event processing in the wxGetApp().Yield(true); // Pass true for onlyIfNeeded to avoid recursive call error.
// time ruler when switching from scrub to quick play.
wxGetApp().SafeYield(nullptr, true); // Pass true for onlyIfNeeded to avoid recursive call error.
if (mScrubQueue) if (mScrubQueue)
mScrubQueue->Nudge(); mScrubQueue->Nudge();
wxMilliSleep( 50 ); wxMilliSleep( 50 );

View File

@ -2404,12 +2404,19 @@ void AdornedRulerPanel::OnMouseEvents(wxMouseEvent &evt)
; ;
else if (zone == StatusChoice::EnteringQP && else if (zone == StatusChoice::EnteringQP &&
mQuickPlayEnabled && mQuickPlayEnabled &&
evt.LeftDown()) { evt.LeftUp()) {
// Stop scrubbing // Stop scrubbing
if (HasCapture()) if (HasCapture())
ReleaseMouse(); ReleaseMouse();
mProject->OnStop(); mProject->OnStop();
// Continue to quick play event handling
// Simulate a new click in the same place
evt.SetEventType(wxEVT_LEFT_DOWN);
this->AddPendingEvent(evt);
evt.SetEventType(wxEVT_LEFT_UP);
this->AddPendingEvent(evt);
return;
} }
else { else {
// If already clicked for scrub, preempt the usual event handling, // If already clicked for scrub, preempt the usual event handling,