From 0ef7ccb1d1a2b001f7291720a1ab3a34f9f6386c Mon Sep 17 00:00:00 2001 From: Leland Lucius Date: Fri, 29 May 2015 19:48:12 -0500 Subject: [PATCH 1/3] Fix permissions...not sure why this was happening though --- lib-src/FileDialog/FileDialog.h | 0 lib-src/FileDialog/win/FileDialogPrivate.cpp | 0 src/AudacityApp.cpp | 0 src/AutoRecovery.cpp | 0 src/Experimental.h | 0 src/FreqWindow.cpp | 0 src/Menus.cpp | 0 src/PluginManager.cpp | 0 src/PluginManager.h | 0 src/Project.cpp | 0 src/Project.h | 0 src/ShuttleGui.cpp | 0 src/TrackPanel.cpp | 0 src/TrackPanel.h | 0 src/effects/Contrast.cpp | 0 src/effects/Contrast.h | 0 src/effects/DtmfGen.cpp | 0 src/effects/Effect.cpp | 0 src/effects/Effect.h | 0 src/effects/EffectManager.cpp | 0 src/effects/EffectManager.h | 0 src/effects/Equalization.cpp | 0 src/effects/Equalization.h | 0 src/effects/Noise.cpp | 0 src/effects/Normalize.cpp | 0 src/effects/Silence.cpp | 0 src/effects/ToneGen.cpp | 0 src/effects/VST/VSTEffect.cpp | 0 src/effects/ladspa/LadspaEffect.cpp | 0 src/effects/lv2/LV2Effect.cpp | 0 src/effects/nyquist/Nyquist.cpp | 0 src/effects/vamp/VampEffect.cpp | 0 src/export/Export.cpp | 0 src/export/ExportPCM.cpp | 0 src/import/ImportOGG.cpp | 0 src/prefs/ModulePrefs.cpp | 0 src/prefs/ModulePrefs.h | 0 src/widgets/ASlider.cpp | 0 src/widgets/ProgressDialog.cpp | 0 src/widgets/numformatter.cpp | 0 40 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 lib-src/FileDialog/FileDialog.h mode change 100755 => 100644 lib-src/FileDialog/win/FileDialogPrivate.cpp mode change 100755 => 100644 src/AudacityApp.cpp mode change 100755 => 100644 src/AutoRecovery.cpp mode change 100755 => 100644 src/Experimental.h mode change 100755 => 100644 src/FreqWindow.cpp mode change 100755 => 100644 src/Menus.cpp mode change 100755 => 100644 src/PluginManager.cpp mode change 100755 => 100644 src/PluginManager.h mode change 100755 => 100644 src/Project.cpp mode change 100755 => 100644 src/Project.h mode change 100755 => 100644 src/ShuttleGui.cpp mode change 100755 => 100644 src/TrackPanel.cpp mode change 100755 => 100644 src/TrackPanel.h mode change 100755 => 100644 src/effects/Contrast.cpp mode change 100755 => 100644 src/effects/Contrast.h mode change 100755 => 100644 src/effects/DtmfGen.cpp mode change 100755 => 100644 src/effects/Effect.cpp mode change 100755 => 100644 src/effects/Effect.h mode change 100755 => 100644 src/effects/EffectManager.cpp mode change 100755 => 100644 src/effects/EffectManager.h mode change 100755 => 100644 src/effects/Equalization.cpp mode change 100755 => 100644 src/effects/Equalization.h mode change 100755 => 100644 src/effects/Noise.cpp mode change 100755 => 100644 src/effects/Normalize.cpp mode change 100755 => 100644 src/effects/Silence.cpp mode change 100755 => 100644 src/effects/ToneGen.cpp mode change 100755 => 100644 src/effects/VST/VSTEffect.cpp mode change 100755 => 100644 src/effects/ladspa/LadspaEffect.cpp mode change 100755 => 100644 src/effects/lv2/LV2Effect.cpp mode change 100755 => 100644 src/effects/nyquist/Nyquist.cpp mode change 100755 => 100644 src/effects/vamp/VampEffect.cpp mode change 100755 => 100644 src/export/Export.cpp mode change 100755 => 100644 src/export/ExportPCM.cpp mode change 100755 => 100644 src/import/ImportOGG.cpp mode change 100755 => 100644 src/prefs/ModulePrefs.cpp mode change 100755 => 100644 src/prefs/ModulePrefs.h mode change 100755 => 100644 src/widgets/ASlider.cpp mode change 100755 => 100644 src/widgets/ProgressDialog.cpp mode change 100755 => 100644 src/widgets/numformatter.cpp diff --git a/lib-src/FileDialog/FileDialog.h b/lib-src/FileDialog/FileDialog.h old mode 100755 new mode 100644 diff --git a/lib-src/FileDialog/win/FileDialogPrivate.cpp b/lib-src/FileDialog/win/FileDialogPrivate.cpp old mode 100755 new mode 100644 diff --git a/src/AudacityApp.cpp b/src/AudacityApp.cpp old mode 100755 new mode 100644 diff --git a/src/AutoRecovery.cpp b/src/AutoRecovery.cpp old mode 100755 new mode 100644 diff --git a/src/Experimental.h b/src/Experimental.h old mode 100755 new mode 100644 diff --git a/src/FreqWindow.cpp b/src/FreqWindow.cpp old mode 100755 new mode 100644 diff --git a/src/Menus.cpp b/src/Menus.cpp old mode 100755 new mode 100644 diff --git a/src/PluginManager.cpp b/src/PluginManager.cpp old mode 100755 new mode 100644 diff --git a/src/PluginManager.h b/src/PluginManager.h old mode 100755 new mode 100644 diff --git a/src/Project.cpp b/src/Project.cpp old mode 100755 new mode 100644 diff --git a/src/Project.h b/src/Project.h old mode 100755 new mode 100644 diff --git a/src/ShuttleGui.cpp b/src/ShuttleGui.cpp old mode 100755 new mode 100644 diff --git a/src/TrackPanel.cpp b/src/TrackPanel.cpp old mode 100755 new mode 100644 diff --git a/src/TrackPanel.h b/src/TrackPanel.h old mode 100755 new mode 100644 diff --git a/src/effects/Contrast.cpp b/src/effects/Contrast.cpp old mode 100755 new mode 100644 diff --git a/src/effects/Contrast.h b/src/effects/Contrast.h old mode 100755 new mode 100644 diff --git a/src/effects/DtmfGen.cpp b/src/effects/DtmfGen.cpp old mode 100755 new mode 100644 diff --git a/src/effects/Effect.cpp b/src/effects/Effect.cpp old mode 100755 new mode 100644 diff --git a/src/effects/Effect.h b/src/effects/Effect.h old mode 100755 new mode 100644 diff --git a/src/effects/EffectManager.cpp b/src/effects/EffectManager.cpp old mode 100755 new mode 100644 diff --git a/src/effects/EffectManager.h b/src/effects/EffectManager.h old mode 100755 new mode 100644 diff --git a/src/effects/Equalization.cpp b/src/effects/Equalization.cpp old mode 100755 new mode 100644 diff --git a/src/effects/Equalization.h b/src/effects/Equalization.h old mode 100755 new mode 100644 diff --git a/src/effects/Noise.cpp b/src/effects/Noise.cpp old mode 100755 new mode 100644 diff --git a/src/effects/Normalize.cpp b/src/effects/Normalize.cpp old mode 100755 new mode 100644 diff --git a/src/effects/Silence.cpp b/src/effects/Silence.cpp old mode 100755 new mode 100644 diff --git a/src/effects/ToneGen.cpp b/src/effects/ToneGen.cpp old mode 100755 new mode 100644 diff --git a/src/effects/VST/VSTEffect.cpp b/src/effects/VST/VSTEffect.cpp old mode 100755 new mode 100644 diff --git a/src/effects/ladspa/LadspaEffect.cpp b/src/effects/ladspa/LadspaEffect.cpp old mode 100755 new mode 100644 diff --git a/src/effects/lv2/LV2Effect.cpp b/src/effects/lv2/LV2Effect.cpp old mode 100755 new mode 100644 diff --git a/src/effects/nyquist/Nyquist.cpp b/src/effects/nyquist/Nyquist.cpp old mode 100755 new mode 100644 diff --git a/src/effects/vamp/VampEffect.cpp b/src/effects/vamp/VampEffect.cpp old mode 100755 new mode 100644 diff --git a/src/export/Export.cpp b/src/export/Export.cpp old mode 100755 new mode 100644 diff --git a/src/export/ExportPCM.cpp b/src/export/ExportPCM.cpp old mode 100755 new mode 100644 diff --git a/src/import/ImportOGG.cpp b/src/import/ImportOGG.cpp old mode 100755 new mode 100644 diff --git a/src/prefs/ModulePrefs.cpp b/src/prefs/ModulePrefs.cpp old mode 100755 new mode 100644 diff --git a/src/prefs/ModulePrefs.h b/src/prefs/ModulePrefs.h old mode 100755 new mode 100644 diff --git a/src/widgets/ASlider.cpp b/src/widgets/ASlider.cpp old mode 100755 new mode 100644 diff --git a/src/widgets/ProgressDialog.cpp b/src/widgets/ProgressDialog.cpp old mode 100755 new mode 100644 diff --git a/src/widgets/numformatter.cpp b/src/widgets/numformatter.cpp old mode 100755 new mode 100644 From 6ae8a656abd5bfd1b0a0d89274ef26a4812ff34c Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Fri, 29 May 2015 21:13:59 -0400 Subject: [PATCH 2/3] Rewrote escape key handling, more like other Track Panel key handlers ... and removed some abandoned spectral editing code --- src/Project.cpp | 6 +++++ src/TrackPanel.cpp | 59 ++++------------------------------------------ src/TrackPanel.h | 2 +- 3 files changed, 11 insertions(+), 56 deletions(-) diff --git a/src/Project.cpp b/src/Project.cpp index 466041e7c..35b0fbea8 100644 --- a/src/Project.cpp +++ b/src/Project.cpp @@ -1879,6 +1879,9 @@ bool AudacityProject::HandleKeyDown(wxKeyEvent & event) if (wxGetTopLevelParent(wxWindow::FindFocus()) != this) return false; + if (event.GetKeyCode() == WXK_ESCAPE) + mTrackPanel->HandleEscapeKey(true); + if (event.GetKeyCode() == WXK_ALT) mTrackPanel->HandleAltKey(true); @@ -1925,6 +1928,9 @@ bool AudacityProject::HandleKeyUp(wxKeyEvent & event) if (wxGetTopLevelParent(wxWindow::FindFocus()) != this) return false; + if (event.GetKeyCode() == WXK_ESCAPE) + mTrackPanel->HandleEscapeKey(false); + if (event.GetKeyCode() == WXK_ALT) mTrackPanel->HandleAltKey(false); diff --git a/src/TrackPanel.cpp b/src/TrackPanel.cpp index 0f70d8072..6f1f401dd 100644 --- a/src/TrackPanel.cpp +++ b/src/TrackPanel.cpp @@ -1565,8 +1565,11 @@ void TrackPanel::MakeParentResize() mListener->TP_HandleResize(); } -void TrackPanel::HandleEscapeKey() +void TrackPanel::HandleEscapeKey(bool down) { + if (!down) + return; + switch (mMouseCapture) { case IsSelecting: @@ -6335,60 +6338,6 @@ void TrackPanel::OnKeyDown(wxKeyEvent & event) { Track *t = GetFocusedTrack(); - if (event.GetKeyCode() == WXK_ESCAPE) { - HandleEscapeKey(); - return; - } - -#ifdef EXPERIMENTAL_SPECTRAL_EDITING -#ifdef SPECTRAL_EDITING_ESC_KEY - // Test for pinning and unpinning of the center frequency - bool logF; - if (mAdjustSelectionEdges && - event.GetKeyCode() == WXK_ESCAPE) { - if (mFreqSelMode == FREQ_SEL_SNAPPING_CENTER) { - // Toggle center snapping off - // (left click can also turn it off) - mFreqSelMode = FREQ_SEL_INVALID; - } - else if (isSpectrogramTrack(t, &logF)) { - WaveTrack *wt = static_cast(t); - if (mFreqSelMode == FREQ_SEL_INVALID) { - // Toggle center snapping on (the only way to do this) - mFreqSelMode = FREQ_SEL_SNAPPING_CENTER; - StartSnappingFreqSelection(wt); - } - else { - // Handle ESC during frequency drag - wxMouseState state(::wxGetMouseState()); - wxCoord yy = state.GetY(); - ScreenToClient(NULL, &yy); - wxRect r; - if (wt == FindTrack(state.GetX(), yy, false, false, &r)) { - eFreqSelMode saveMode = mFreqSelMode; - mFreqSelMode = FREQ_SEL_PINNED_CENTER; - - StartSnappingFreqSelection(wt); - MoveSnappingFreqSelection(yy, r.y, r.height, wt); - ExtendFreqSelection(yy, r.y, r.height); - UpdateSelectionDisplay(); - - mFreqSelMode = saveMode; - double hint = -1.0; - if (mFreqSelMode == FREQ_SEL_FREE) { - hint = PositionToFrequency - (true, yy, r.y, r.height, wt->GetRate(), logF); - } - ResetFreqSelectionPin(hint, logF); - // MakeParentModifyState(false); - } - } - // And don't skip event, yet - } - } -#endif -#endif - // Only deal with LabelTracks if (!t || t->GetKind() != Track::Label) { event.Skip(); diff --git a/src/TrackPanel.h b/src/TrackPanel.h index 41b951cb1..07631921d 100644 --- a/src/TrackPanel.h +++ b/src/TrackPanel.h @@ -182,7 +182,7 @@ class AUDACITY_DLL_API TrackPanel:public wxPanel { //virtual void SetSelectionFormat(int iformat) //virtual void SetSnapTo(int snapto) - void HandleEscapeKey(); + virtual void HandleEscapeKey(bool down); virtual void HandleAltKey(bool down); virtual void HandleShiftKey(bool down); virtual void HandleControlKey(bool down); From 0e12ab6760448519243a7a41c1b31a90ee719b69 Mon Sep 17 00:00:00 2001 From: Leland Lucius Date: Fri, 29 May 2015 23:01:58 -0500 Subject: [PATCH 3/3] Fix for bug #334 --- src/Project.cpp | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/src/Project.cpp b/src/Project.cpp index 35b0fbea8..d083c51b7 100644 --- a/src/Project.cpp +++ b/src/Project.cpp @@ -3293,10 +3293,28 @@ void AudacityProject::UnlockAllBlocks() } } +class ProjectDisabler +{ +public: + ProjectDisabler(wxWindow *w) + : mWindow(w) + { + mWindow->GetEventHandler()->SetEvtHandlerEnabled(false); + } + ~ProjectDisabler() + { + mWindow->GetEventHandler()->SetEvtHandlerEnabled(true); + } +private: + wxWindow *mWindow; +}; + bool AudacityProject::Save(bool overwrite /* = true */ , bool fromSaveAs /* = false */, bool bWantSaveCompressed /*= false*/) { + ProjectDisabler disabler(this); + if (bWantSaveCompressed) wxASSERT(fromSaveAs); else