diff --git a/gtk2_ardour/trigger_page.cc b/gtk2_ardour/trigger_page.cc index 9749b65d16..275d3d520c 100644 --- a/gtk2_ardour/trigger_page.cc +++ b/gtk2_ardour/trigger_page.cc @@ -376,6 +376,7 @@ TriggerPage::set_session (Session* s) Editor::instance ().get_selection ().TriggersChanged.connect (sigc::mem_fun (*this, &TriggerPage::selection_changed)); Trigger::TriggerArmChanged.connect (*this, invalidator (*this), std::bind (&TriggerPage::trigger_arm_changed, this, _1), gui_context()); + TriggerBox::RegionCaptured.connect (*this, invalidator (*this), std::bind (&TriggerPage::region_captured, this, _1), gui_context()); initial_track_display (); @@ -477,11 +478,9 @@ TriggerPage::clear_selected_slot () } void -TriggerPage::trigger_arm_changed (Trigger const * trigger) +TriggerPage::region_captured (Trigger const * trigger) { - assert (trigger); - - if (!trigger->armed()) { + if (!trigger) { return; } @@ -502,8 +501,10 @@ TriggerPage::trigger_arm_changed (Trigger const * trigger) _audio_trig_box.show (); _audio_editor->set_trigger (ref); + _audio_editor->get_canvas_viewport()->show (); hpacker.pack_start (_audio_editor->contents(), true, true); + _audio_editor->contents().show_all (); } else { @@ -511,7 +512,10 @@ TriggerPage::trigger_arm_changed (Trigger const * trigger) _midi_trig_box.show (); _midi_editor->set_trigger (ref); + _midi_editor->get_canvas_viewport()->show (); + hpacker.pack_start (_midi_editor->contents(), true, true); + _midi_editor->contents().show_all (); } if (_show_bottom_pane) { @@ -519,6 +523,28 @@ TriggerPage::trigger_arm_changed (Trigger const * trigger) } } +void +TriggerPage::trigger_arm_changed (Trigger const * trigger) +{ + if (!trigger) { + return; + } + for (auto & strip : _strips) { + TriggerBoxWidget& tbw (strip->triggerbox_widget()); + TriggerBoxUI* ui (tbw.ui()); + + if (!ui) { + continue; + } + + TriggerEntry* entry = ui->entry_by_trigger (*trigger); + if (entry) { + PublicEditor::instance ().get_selection ().set (entry); + break; + } + } +} + void TriggerPage::hide_all () { diff --git a/gtk2_ardour/trigger_page.h b/gtk2_ardour/trigger_page.h index 22d0b043b2..2b4e3ba4bf 100644 --- a/gtk2_ardour/trigger_page.h +++ b/gtk2_ardour/trigger_page.h @@ -102,6 +102,7 @@ private: void selection_changed (); void trigger_arm_changed (ARDOUR::Trigger const *); + void region_captured (ARDOUR::Trigger const *); PBD::ScopedConnectionList editor_connections; gint start_updating ();