1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-04-30 15:49:41 +02:00

Make Undo history window update properly when you compact the project

This commit is contained in:
Paul Licameli 2020-11-18 20:50:40 -05:00
parent 0f1c19e97e
commit 93b098b8d2
3 changed files with 10 additions and 1 deletions

View File

@ -169,6 +169,7 @@ HistoryDialog::HistoryDialog(AudacityProject *parent, UndoManager *manager):
parent->Bind(EVT_UNDO_MODIFIED, &HistoryDialog::UpdateDisplay, this);
parent->Bind(EVT_UNDO_OR_REDO, &HistoryDialog::UpdateDisplay, this);
parent->Bind(EVT_UNDO_RESET, &HistoryDialog::UpdateDisplay, this);
parent->Bind(EVT_UNDO_PURGE, &HistoryDialog::UpdateDisplay, this);
}
void HistoryDialog::OnAudioIO(wxCommandEvent& evt)

View File

@ -45,6 +45,7 @@ wxDEFINE_EVENT(EVT_UNDO_PUSHED, wxCommandEvent);
wxDEFINE_EVENT(EVT_UNDO_MODIFIED, wxCommandEvent);
wxDEFINE_EVENT(EVT_UNDO_OR_REDO, wxCommandEvent);
wxDEFINE_EVENT(EVT_UNDO_RESET, wxCommandEvent);
wxDEFINE_EVENT(EVT_UNDO_PURGE, wxCommandEvent);
using SampleBlockID = long long;
@ -225,6 +226,10 @@ void UndoManager::RemoveStates(size_t begin, size_t end)
// Success, commit the savepoint
if (pTrans)
pTrans->Commit();
if (begin != end)
// wxWidgets will own the event object
mProject.QueueEvent( safenew wxCommandEvent{ EVT_UNDO_PURGE } );
// Check sanity
wxASSERT_MSG(

View File

@ -67,10 +67,13 @@ wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, EVT_UNDO_MODIFIED, wxCommandEvent);
// contents did not change other than the pointer to current state
wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, EVT_UNDO_OR_REDO, wxCommandEvent);
// Project state for changed other than single-step undo/redo; undo manager
// Project state changed other than for single-step undo/redo; undo manager
// contents did not change other than the pointer to current state
wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, EVT_UNDO_RESET, wxCommandEvent);
// Undo or redo states discarded
wxDECLARE_EXPORTED_EVENT(AUDACITY_DLL_API, EVT_UNDO_PURGE, wxCommandEvent);
class AudacityProject;
class Tags;
class Track;