From 35127c44b73c36e684e178200e195e47d043bf0b Mon Sep 17 00:00:00 2001 From: James Crook Date: Sat, 24 Mar 2018 16:05:10 +0000 Subject: [PATCH] Bug 1548 - Newly recorded tracks do not acquire focus --- src/Track.cpp | 2 ++ src/toolbars/ControlToolBar.cpp | 3 +++ 2 files changed, 5 insertions(+) diff --git a/src/Track.cpp b/src/Track.cpp index ddd6d20e5..eb59fab95 100644 --- a/src/Track.cpp +++ b/src/Track.cpp @@ -120,6 +120,8 @@ TrackNodePointer Track::GetNode() const void Track::SetOwner (const std::weak_ptr &list, TrackNodePointer node) { + // BUG: When using this function to clear an owner, we may need to clear + // focussed track too. Otherwise focus could remain on an invisible (or deleted) track. mList = list; mNode = node; } diff --git a/src/toolbars/ControlToolBar.cpp b/src/toolbars/ControlToolBar.cpp index 8897c6640..6680f7652 100644 --- a/src/toolbars/ControlToolBar.cpp +++ b/src/toolbars/ControlToolBar.cpp @@ -74,6 +74,7 @@ #include "../tracks/ui/Scrubbing.h" #include "../prefs/TracksPrefs.h" #include "../toolbars/ToolManager.h" +#include "../TrackPanel.h" IMPLEMENT_CLASS(ControlToolBar, ToolBar); @@ -1189,6 +1190,8 @@ void ControlToolBar::OnRecord(wxCommandEvent &evt) p->GetTracks()->RegisterPendingNewTrack( newTrack ); recordingTracks.push_back( newTrack ); + // Bug 1548. New track needs the focus. + p->GetTrackPanel()->SetFocusedTrack( newTrack.get() ); } }