From f15862a4fb5f9128f900ef86e2b07c39fe4af7a2 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Mon, 9 Aug 2010 14:11:24 +0000 Subject: [PATCH] Reset entered_track if it is set to an automation child whose parent is deleted. Fixes #3389. git-svn-id: svn://localhost/ardour2/branches/3.0@7569 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/editor.cc | 15 ++++++++++++--- 1 file changed, 12 insertions(+), 3 deletions(-) diff --git a/gtk2_ardour/editor.cc b/gtk2_ardour/editor.cc index f5d64a523d..28d9ee543a 100644 --- a/gtk2_ardour/editor.cc +++ b/gtk2_ardour/editor.cc @@ -5018,14 +5018,24 @@ Editor::timeaxisview_deleted (TimeAxisView *tv) } ENSURE_GUI_THREAD (*this, &Editor::timeaxisview_deleted, tv); - + RouteTimeAxisView* rtav = dynamic_cast (tv); + _routes->route_removed (tv); if (tv == entered_track) { entered_track = 0; } - + + if (rtav) { + TimeAxisView::Children c = rtav->get_child_list (); + for (TimeAxisView::Children::const_iterator i = c.begin(); i != c.end(); ++i) { + if (entered_track == i->get()) { + entered_track = 0; + } + } + } + /* remove it from the list of track views */ TrackViewList::iterator i; @@ -5037,7 +5047,6 @@ Editor::timeaxisview_deleted (TimeAxisView *tv) /* update whatever the current mixer strip is displaying, if revelant */ boost::shared_ptr route; - RouteTimeAxisView* rtav = dynamic_cast (tv); if (rtav) { route = rtav->route ();