diff options
Diffstat (limited to 'libs/ardour/midi_region.cc')
-rw-r--r-- | libs/ardour/midi_region.cc | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/libs/ardour/midi_region.cc b/libs/ardour/midi_region.cc index cb0d103b1e..71fd796b81 100644 --- a/libs/ardour/midi_region.cc +++ b/libs/ardour/midi_region.cc @@ -421,6 +421,13 @@ MidiRegion::model_automation_state_changed (Evoral::Parameter const & p) } else { _filtered_parameters.insert (p); } + + /* the source will have an iterator into the model, and that iterator will have been set up + for a given set of filtered_parameters, so now that we've changed that list we must invalidate + the iterator. + */ + Glib::Threads::Mutex::Lock lm (midi_source(0)->mutex()); + midi_source(0)->invalidate (); } /** This is called when a trim drag has resulted in a -ve _start time for this region. |