mirror of
https://github.com/cookiengineer/audacity
synced 2025-05-05 14:18:53 +02:00
Uncheck scrubbing menu items whenever scrub stops (ESC key, Stop button, other)
This commit is contained in:
parent
e0c80a8d20
commit
1fe0bbf7dc
@ -113,8 +113,6 @@ It handles initialization and termination by subclassing wxApp.
|
||||
#include "effects/ScoreAlignDialog.h"
|
||||
#endif
|
||||
|
||||
#include "tracks/ui/Scrubbing.h"
|
||||
|
||||
#if 0
|
||||
#ifdef _DEBUG
|
||||
#ifdef _MSC_VER
|
||||
@ -1530,11 +1528,7 @@ void AudacityApp::OnKeyDown(wxKeyEvent &event)
|
||||
// Stop play, including scrub, but not record
|
||||
auto project = ::GetActiveProject();
|
||||
auto token = project->GetAudioIOToken();
|
||||
auto &scrubber = project->GetScrubber();
|
||||
if(scrubber.HasStartedScrubbing())
|
||||
// ESC out of scrubbing
|
||||
scrubber.StopScrubbing();
|
||||
else if(token > 0 &&
|
||||
if(token > 0 &&
|
||||
gAudioIO->IsAudioTokenActive(token) &&
|
||||
gAudioIO->GetNumCaptureChannels() == 0)
|
||||
// ESC out of other play (but not record)
|
||||
|
@ -773,6 +773,12 @@ void ControlToolBar::PlayDefault()
|
||||
|
||||
void ControlToolBar::StopPlaying(bool stopStream /* = true*/)
|
||||
{
|
||||
AudacityProject *project = GetActiveProject();
|
||||
|
||||
if(project)
|
||||
// Let scrubbing code do some appearance change
|
||||
project->GetScrubber().StopScrubbing();
|
||||
|
||||
if (!CanStopAudioStream())
|
||||
return;
|
||||
|
||||
@ -798,7 +804,6 @@ void ControlToolBar::StopPlaying(bool stopStream /* = true*/)
|
||||
mBusyProject = NULL;
|
||||
// So that we continue monitoring after playing or recording.
|
||||
// also clean the MeterQueues
|
||||
AudacityProject *project = GetActiveProject();
|
||||
if( project ) {
|
||||
project->MayStartMonitoring();
|
||||
|
||||
|
@ -342,16 +342,12 @@ void Scrubber::StopScrubbing()
|
||||
|
||||
mScrubStartPosition = -1;
|
||||
mSmoothScrollingScrub = false;
|
||||
const auto ctb = mProject->GetControlToolBar();
|
||||
|
||||
if (IsScrubbing())
|
||||
if (!IsScrubbing())
|
||||
{
|
||||
if (gAudioIO->IsBusy()) {
|
||||
ctb->StopPlaying();
|
||||
}
|
||||
}
|
||||
else {
|
||||
// Didn't really play, but did change button apperance
|
||||
// Marked scrub start, but
|
||||
// didn't really play, but did change button apperance
|
||||
const auto ctb = mProject->GetControlToolBar();
|
||||
ctb->SetPlay(false, ControlToolBar::PlayAppearance::Straight);
|
||||
}
|
||||
}
|
||||
@ -596,9 +592,11 @@ void Scrubber::DoScrub(bool scroll, bool seek)
|
||||
UncheckAllMenuItems();
|
||||
CheckMenuItem();
|
||||
}
|
||||
else
|
||||
// unchecks items
|
||||
StopScrubbing();
|
||||
else {
|
||||
// This will call back to Scrubber::StopScrubbing
|
||||
const auto ctb = mProject->GetControlToolBar();
|
||||
ctb->StopPlaying();
|
||||
}
|
||||
}
|
||||
|
||||
void Scrubber::OnScrub()
|
||||
|
@ -37,6 +37,8 @@ public:
|
||||
// Returns true iff the event should be considered consumed by this:
|
||||
bool MaybeStartScrubbing(const wxMouseEvent &event);
|
||||
void ContinueScrubbing();
|
||||
|
||||
// This is meant to be called only from ControlToolBar
|
||||
void StopScrubbing();
|
||||
|
||||
wxCoord GetScrubStartPosition() const
|
||||
|
Loading…
x
Reference in New Issue
Block a user