1
0
mirror of https://github.com/cookiengineer/audacity synced 2025-10-10 00:23:32 +02:00

Win: assertions on project close shouldn't crash displaying the dialog (#629)

This commit is contained in:
Paul Licameli
2020-07-23 12:16:02 -04:00
committed by GitHub
parent c7c679ffed
commit d677bead7a
2 changed files with 13 additions and 2 deletions

View File

@@ -225,6 +225,8 @@ struct ScrubForwarder
mWindow = &ProjectWindow::Get( project );
if ( mWindow )
mWindow->PushEventHandler( this );
mRuler = &AdornedRulerPanel::Get( project );
mScrubber = Scrubber::Get( project ).shared_from_this();
}
~ScrubForwarder()
@@ -235,6 +237,8 @@ struct ScrubForwarder
AudacityProject &mProject;
wxWindowPtr<wxWindow> mWindow;
wxWeakRef<AdornedRulerPanel> mRuler;
std::weak_ptr<Scrubber> mScrubber;
void OnMouse(wxMouseEvent &event);
DECLARE_EVENT_TABLE()
@@ -242,9 +246,15 @@ struct ScrubForwarder
void ScrubForwarder::OnMouse(wxMouseEvent &event)
{
auto &scrubber = Scrubber::Get( mProject );
auto pScrubber = mScrubber.lock();
if ( !pScrubber || !mRuler ) {
event.Skip();
return;
}
auto &ruler = AdornedRulerPanel::Get( mProject );
auto &scrubber = *pScrubber;
auto &ruler = *mRuler;
const auto &state = ::wxGetMouseState();
const auto &position = state.GetPosition();
scrubber.SetMayDragToSeek(

View File

@@ -42,6 +42,7 @@ class Scrubber final
: public wxEvtHandler
, public ClientData::Base
, private PrefsListener
, public std::enable_shared_from_this< Scrubber >
{
public:
static Scrubber &Get( AudacityProject &project );