13
0

when removing Stripables from CoreSelection by ID, be sure to remove all possible entries in the Selection

A Stripable may have itself plus zero-to-N automation controls in
CoreSelection.
This commit is contained in:
Paul Davis 2017-05-08 10:36:04 +01:00
parent 005fa9176a
commit 24b8004bf7

View File

@ -249,10 +249,14 @@ CoreSelection::remove_stripable_by_id (PBD::ID const & id)
{
Glib::Threads::RWLock::WriterLock lm (_lock);
for (SelectedStripables::iterator x = _stripables.begin(); x != _stripables.end(); ++x) {
for (SelectedStripables::iterator x = _stripables.begin(); x != _stripables.end(); ) {
if ((*x).stripable == id) {
_stripables.erase (x);
return;
x = _stripables.erase (x);
/* keep going because there may be more than 1 pair of
stripable/automation-control in the selection.
*/
} else {
++x;
}
}
}