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:
@@ -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;
|
||||
|
||||
Reference in New Issue
Block a user