1
0
mirror of https://github.com/cookiengineer/audacity synced 2026-02-10 21:50:29 +01:00

ProjectWindow listens for undo events, intrudes less in other code

This commit is contained in:
Paul Licameli
2019-06-08 11:28:22 -04:00
parent e17fc86c23
commit 5eaf0a649b
4 changed files with 20 additions and 10 deletions

View File

@@ -21,6 +21,7 @@ Paul Licameli split from AudacityProject.cpp
#include "RefreshCode.h"
#include "TrackPanel.h"
#include "TrackPanelMouseEvent.h"
#include "UndoManager.h"
#include "ViewInfo.h"
#include "WaveClip.h"
#include "WaveTrack.h"
@@ -642,6 +643,9 @@ ProjectWindow::ProjectWindow(wxWindow * parent, wxWindowID id,
mMainPage = pPage;
mPlaybackScroller = std::make_unique<PlaybackScroller>( &project );
project.Bind( EVT_UNDO_OR_REDO, &ProjectWindow::OnUndoRedo, this );
project.Bind( EVT_UNDO_RESET, &ProjectWindow::OnUndoReset, this );
}
void ProjectWindow::Init()
@@ -1436,6 +1440,20 @@ void ProjectWindow::OnToolBarUpdate(wxCommandEvent & event)
event.Skip(false); /* No need to propagate any further */
}
void ProjectWindow::OnUndoRedo( wxCommandEvent &evt )
{
evt.Skip();
HandleResize();
CallAfter( [this]{ RedrawProject(); } );
}
void ProjectWindow::OnUndoReset( wxCommandEvent &evt )
{
evt.Skip();
HandleResize();
// CallAfter( [this]{ RedrawProject(); } ); // Should we do this here too?
}
void ProjectWindow::OnScroll(wxScrollEvent & WXUNUSED(event))
{
auto &project = mProject;