From 0f20819c8643974ce6d52fc1dc7ec3a18877d05b Mon Sep 17 00:00:00 2001 From: Paul Davis Date: Sat, 10 Jun 2017 11:53:21 -0400 Subject: linker-agnostic version of recent commit to get ControlProtocol selection state set correctly --- libs/ardour/control_protocol_manager.cc | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/libs/ardour/control_protocol_manager.cc b/libs/ardour/control_protocol_manager.cc index b510bd5aa7..7205b3e79e 100644 --- a/libs/ardour/control_protocol_manager.cc +++ b/libs/ardour/control_protocol_manager.cc @@ -96,17 +96,20 @@ ControlProtocolManager::set_session (Session* s) CoreSelection::StripableAutomationControls sac; _session->selection().get_stripables (sac); - for (CoreSelection::StripableAutomationControls::iterator i = sac.begin(); i != sac.end(); ++i) { - if ((*i).stripable) { - cerr << "First selected being set to " << (*i).stripable->name() << endl; - ControlProtocol::set_first_selected_stripable ((*i).stripable); - break; + if (!sac.empty()) { + StripableNotificationListPtr v (new StripableNotificationList); + for (CoreSelection::StripableAutomationControls::iterator i = sac.begin(); i != sac.end(); ++i) { + if ((*i).stripable) { + v->push_back (boost::weak_ptr ((*i).stripable)); + } + } + if (!v->empty()) { + StripableSelectionChanged (v); /* EMIT SIGNAL */ } } Glib::Threads::RWLock::ReaderLock lm (protocols_lock); - for (list::iterator i = control_protocol_info.begin(); i != control_protocol_info.end(); ++i) { if ((*i)->requested || (*i)->mandatory) { (void) activate (**i); -- cgit v1.2.3