summaryrefslogtreecommitdiff
path: root/gtk2_ardour/editor_routes.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2016-05-03 03:04:46 +0200
committerRobin Gareus <robin@gareus.org>2016-05-03 14:27:48 +0200
commit433f18049b08ebfd486fd33e5e7696b2ce5ac3fb (patch)
tree177bbd46220cc4fe5a4b0ba48074a8375382ef63 /gtk2_ardour/editor_routes.cc
parentd5050cd0f4a88e8a0f1da3c4f0021b2ec260991f (diff)
skip updating editor-route display when closing the session
Diffstat (limited to 'gtk2_ardour/editor_routes.cc')
-rw-r--r--gtk2_ardour/editor_routes.cc6
1 files changed, 6 insertions, 0 deletions
diff --git a/gtk2_ardour/editor_routes.cc b/gtk2_ardour/editor_routes.cc
index 8d35a4a6a8..39847c9ffc 100644
--- a/gtk2_ardour/editor_routes.cc
+++ b/gtk2_ardour/editor_routes.cc
@@ -570,6 +570,9 @@ EditorRoutes::redisplay ()
// model deprecated g_atomic_int_exchange_and_add(, 1)
g_atomic_int_inc(const_cast<gint*>(&_redisplay_active));
if (!g_atomic_int_compare_and_exchange (const_cast<gint*>(&_redisplay_active), 1, 1)) {
+ /* recursive re-display can happen if redisplay shows/hides a TrackView
+ * which has children and their display status changes as result.
+ */
return;
}
@@ -584,6 +587,9 @@ EditorRoutes::redisplay ()
void
EditorRoutes::row_deleted (Gtk::TreeModel::Path const &)
{
+ if (!_session || _session->deletion_in_progress()) {
+ return;
+ }
/* this happens as the second step of a DnD within the treeview, and
* when a route is actually removed. we don't differentiate between
* the two cases.