--- src/effects/Equalization.cpp +++ src/effects/Equalization.cpp @@ -321,6 +321,8 @@ } gPrefs->Read(wxT("/CsPresets/EQDrawMode"), &mDrawMode, true); gPrefs->Read(wxT("/CsPresets/EQInterp"), &mInterp, 0); + + mPrompting = false; } @@ -358,7 +360,10 @@ // not required here - called automatically // dlog.TransferDataToWindow(); dlog.CentreOnParent(); + + mPrompting = true; dlog.ShowModal(); + mPrompting = false; if (!dlog.GetReturnCode()) return false; @@ -419,7 +424,9 @@ bool EffectEqualization::Process() { - DontPromptUser(); + if (!mPrompting) { + DontPromptUser(); + } TrackListIterator iter(mWaveTracks); WaveTrack *track = (WaveTrack *) iter.First(); int count = 0; @@ -601,7 +608,7 @@ mHeight = 0; mLoFreq = loFreq; mHiFreq = hiFreq; - M = 0; + M = 21; // should be odd mWindowSize = windowSize; mFilterFuncR = filterFuncR; mFilterFuncI = filterFuncI; @@ -1333,7 +1340,7 @@ OnLinFreq(dummyEvent); MSlider->SetValue((M-1)/2); - M = 0; // force refresh in TransferDataFromWindow() + M = 21; // force refresh in TransferDataFromWindow() dBMinSlider->SetValue((int)dBMin); dBMin = 0; // force refresh in TransferDataFromWindow() @@ -2530,11 +2537,11 @@ void EqualizationDialog::OnClear(wxCommandEvent &event) { + EnvelopeUpdated(); mLogEnvelope->Flatten(0.); mLogEnvelope->SetTrackLen(1.0); mLinEnvelope->Flatten(0.); mLinEnvelope->SetTrackLen(1.0); - EnvelopeUpdated(); mPanel->RecalcRequired = true; mPanel->Refresh(false); if( !drawMode ) --- src/effects/Equalization.h +++ src/effects/Equalization.h @@ -124,6 +124,7 @@ double mdBMin; bool mDrawMode; int mInterp; + bool mPrompting; public: enum curveType {