diff options
author | Robin Gareus <robin@gareus.org> | 2016-05-03 03:04:46 +0200 |
---|---|---|
committer | Robin Gareus <robin@gareus.org> | 2016-05-03 14:27:48 +0200 |
commit | 433f18049b08ebfd486fd33e5e7696b2ce5ac3fb (patch) | |
tree | 177bbd46220cc4fe5a4b0ba48074a8375382ef63 /gtk2_ardour/editor_routes.cc | |
parent | d5050cd0f4a88e8a0f1da3c4f0021b2ec260991f (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.cc | 6 |
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. |