From 63c7b3740e99cd6f5c843271f13f1b89de5cbe64 Mon Sep 17 00:00:00 2001 From: Paul Licameli Date: Wed, 26 Jun 2019 13:40:06 -0400 Subject: [PATCH] RedrawProject has a CallAfter delay now, so remove other delays... ... and rewrite that CallAfter more safely with a weak pointer --- src/ProjectWindow.cpp | 14 +++++++++----- 1 file changed, 9 insertions(+), 5 deletions(-) diff --git a/src/ProjectWindow.cpp b/src/ProjectWindow.cpp index 1582f4fba..12fa7eb74 100644 --- a/src/ProjectWindow.cpp +++ b/src/ProjectWindow.cpp @@ -865,12 +865,16 @@ void ProjectWindow::ApplyUpdatedTheme() void ProjectWindow::RedrawProject(const bool bForceWaveTracks /*= false*/) { - CallAfter( [this, bForceWaveTracks]{ + auto pThis = wxWeakRef(this); + CallAfter( [pThis, bForceWaveTracks]{ - auto &project = mProject ; + if (!pThis) + return; + + auto &project = pThis->mProject ; auto &tracks = TrackList::Get( project ); auto &trackPanel = TrackPanel::Get( project ); - FixScrollbars(); + pThis->FixScrollbars(); if (bForceWaveTracks) { for ( auto pWaveTrack : tracks.Any< WaveTrack >() ) @@ -1439,14 +1443,14 @@ void ProjectWindow::OnUndoRedo( wxCommandEvent &evt ) { evt.Skip(); HandleResize(); - CallAfter( [this]{ RedrawProject(); } ); + RedrawProject(); } void ProjectWindow::OnUndoReset( wxCommandEvent &evt ) { evt.Skip(); HandleResize(); - // CallAfter( [this]{ RedrawProject(); } ); // Should we do this here too? + // RedrawProject(); // Should we do this here too? } void ProjectWindow::OnScroll(wxScrollEvent & WXUNUSED(event))