diff --git a/libs/ardour/midi_source.cc b/libs/ardour/midi_source.cc index f787d49168..adf28cff09 100644 --- a/libs/ardour/midi_source.cc +++ b/libs/ardour/midi_source.cc @@ -397,6 +397,7 @@ void MidiSource::drop_model () { _model.reset(); + invalidate(); ModelChanged (); /* EMIT SIGNAL */ } @@ -404,6 +405,7 @@ void MidiSource::set_model (boost::shared_ptr m) { _model = m; + invalidate(); ModelChanged (); /* EMIT SIGNAL */ } diff --git a/libs/ardour/smf_source.cc b/libs/ardour/smf_source.cc index 72f03ba351..e4cfede179 100644 --- a/libs/ardour/smf_source.cc +++ b/libs/ardour/smf_source.cc @@ -613,6 +613,8 @@ SMFSource::load_model (bool lock, bool force_reload) _model->clear(); } + invalidate(); + if (writable() && !_open) { return; } @@ -712,6 +714,7 @@ SMFSource::destroy_model () { //cerr << _name << " destroying model " << _model.get() << endl; _model.reset(); + invalidate(); } void @@ -753,6 +756,7 @@ SMFSource::ensure_disk_file () _model.reset (); mm->sync_to_source (); _model = mm; + invalidate(); } else { /* No model; if it's not already open, it's an empty source, so create and open it for writing.