diff --git a/src/AudacityApp.cpp b/src/AudacityApp.cpp index ef50a76b3..ff7a0a16a 100644 --- a/src/AudacityApp.cpp +++ b/src/AudacityApp.cpp @@ -93,6 +93,7 @@ It handles initialization and termination by subclassing wxApp. #include "commands/Keyboard.h" #include "widgets/ErrorDialog.h" #include "prefs/DirectoriesPrefs.h" +#include "tracks/ui/Scrubbing.h" //temporarilly commented out till it is added to all projects //#include "Profiler.h" @@ -1528,9 +1529,10 @@ void AudacityApp::OnKeyDown(wxKeyEvent &event) // Stop play, including scrub, but not record auto project = ::GetActiveProject(); auto token = project->GetAudioIOToken(); - if(token > 0 && - gAudioIO->IsAudioTokenActive(token) && - gAudioIO->GetNumCaptureChannels() == 0) + if((token > 0 && + gAudioIO->IsAudioTokenActive(token) && + gAudioIO->GetNumCaptureChannels() == 0) || + project->GetScrubber().HasStartedScrubbing()) // ESC out of other play (but not record) project->OnStop(); else diff --git a/src/Menus.cpp b/src/Menus.cpp index f4b6a582f..6dafd2369 100644 --- a/src/Menus.cpp +++ b/src/Menus.cpp @@ -2244,8 +2244,7 @@ void AudacityProject::OnStop() { wxCommandEvent evt; - if (gAudioIO->IsStreamActive()) - GetControlToolBar()->OnStop(evt); + GetControlToolBar()->OnStop(evt); } void AudacityProject::OnPause() diff --git a/src/tracks/ui/Scrubbing.cpp b/src/tracks/ui/Scrubbing.cpp index 09b8e84b5..1ff68a785 100644 --- a/src/tracks/ui/Scrubbing.cpp +++ b/src/tracks/ui/Scrubbing.cpp @@ -680,13 +680,14 @@ std::vector Scrubber::GetAllUntranslatedStatusStrings() void Scrubber::AddMenuItems() { auto cm = mProject->GetCommandManager(); + auto flags = cm->GetDefaultFlags() | WaveTracksExistFlag; + auto mask = cm->GetDefaultMask() | WaveTracksExistFlag; cm->BeginSubMenu(_("Scru&bbing")); for (const auto &item : menuItems) { cm->AddCheck(item.name, wxGetTranslation(item.label), FNT(Scrubber, this, item.memFn), - false, - WaveTracksExistFlag, WaveTracksExistFlag); + false, flags, mask); } cm->EndSubMenu(); CheckMenuItem();