Fix crash when adding events to disabled MIDI event-lane

In case of MIDI CC/Bend/Pressure etc events, the underlying
data is provided by a MidiTrack (is-a Automatable) and not
an automation-control.

When directly calling AutomationControl::set_automation_state,
the AC disables automation-watch using shared_from_this().
With the Evoral::Control used for MidiTrack event-lists this
results in a tr1::bad_weak_ptr.
This commit is contained in:
Robin Gareus 2022-07-22 03:37:57 +02:00
parent 62aae6cffb
commit 2245042b85
No known key found for this signature in database
GPG key ID: A090BCE02CF57F04
3 changed files with 5 additions and 3 deletions

View file

@ -791,8 +791,9 @@ AutomationTimeAxisView::add_automation_event (GdkEvent* event, timepos_t const &
if (list->editor_add (when, y, with_guard_points)) {
if (_control->automation_state () == ARDOUR::Off) {
_control->set_automation_state (ARDOUR::Play);
set_automation_state (ARDOUR::Play);
}
if (UIConfiguration::instance().get_automation_edit_cancels_auto_hide () && _control == _session->recently_touched_controllable ()) {
RouteTimeAxisView::signal_ctrl_touched (false);
}