diff --git a/gtk2_ardour/route_time_axis.cc b/gtk2_ardour/route_time_axis.cc index 2f8cbc0464..5d9427d33d 100644 --- a/gtk2_ardour/route_time_axis.cc +++ b/gtk2_ardour/route_time_axis.cc @@ -1330,7 +1330,6 @@ RouteTimeAxisView::cut_copy_clear (Selection& selection, CutCopyOp op) playlist->ripple (time.start_time(), -time.length(), NULL); } playlist->rdiff_and_add_command (_session); - what_we_got->release (); } break; } diff --git a/gtk2_ardour/selection.cc b/gtk2_ardour/selection.cc index 7e50f5f0ac..07638c5463 100644 --- a/gtk2_ardour/selection.cc +++ b/gtk2_ardour/selection.cc @@ -254,6 +254,7 @@ Selection::toggle (std::shared_ptr pl) playlists.push_back(pl); } else { playlists.erase (i); + pl->release (); } PlaylistsChanged (); @@ -591,6 +592,7 @@ Selection::remove (std::shared_ptr track) list >::iterator i; if ((i = find (playlists.begin(), playlists.end(), track)) != playlists.end()) { playlists.erase (i); + (*i)->release (); PlaylistsChanged(); } } @@ -605,6 +607,7 @@ Selection::remove (const list >& pllist) list >::iterator x; if ((x = find (playlists.begin(), playlists.end(), (*i))) != playlists.end()) { + (*x)->release (); playlists.erase (x); changed = true; } @@ -832,7 +835,6 @@ Selection::empty (bool internal_selection) playlists.empty () && lines.empty () && time.empty () && - playlists.empty () && markers.empty() && triggers.empty() ;