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:
parent
005fa9176a
commit
24b8004bf7
@ -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;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user