add invalidator() calls to MixerStrip as it connects to ParameterChanged
when the surround bus is removed, it (probably erroneously) causes changes to the I/O routing for the auditioner, which will be delivered to anyone who cares via an RCConfiguration ParameterChanged signal. This will be emitted from a non-GUI thread, and so will not be handled synchronously. The GUI thread will first handle the notification that the surround bus was deleted, and that will include deleting the MixerStrip for the surround bus. But another call_slot() request will be pending to notify the now-deleted MixerStrip about the auditioner change. Adding invalidator() calls ensures that the deletion of the MixerStrip removes all of these pending call_slot() requests.
This commit is contained in:
parent
c3d14b1169
commit
fb930e8f47
@ -413,8 +413,8 @@ MixerStrip::init ()
|
||||
|
||||
parameter_changed (X_("mixer-element-visibility"));
|
||||
UIConfiguration::instance().ParameterChanged.connect (sigc::mem_fun (*this, &MixerStrip::parameter_changed));
|
||||
Config->ParameterChanged.connect (_config_connection, MISSING_INVALIDATOR, boost::bind (&MixerStrip::parameter_changed, this, _1), gui_context());
|
||||
_session->config.ParameterChanged.connect (_config_connection, MISSING_INVALIDATOR, boost::bind (&MixerStrip::parameter_changed, this, _1), gui_context());
|
||||
Config->ParameterChanged.connect (_config_connection, invalidator (*this), boost::bind (&MixerStrip::parameter_changed, this, _1), gui_context());
|
||||
_session->config.ParameterChanged.connect (_config_connection, invalidator (*this), boost::bind (&MixerStrip::parameter_changed, this, _1), gui_context());
|
||||
|
||||
//watch for mouse enter/exit so we can do some stuff
|
||||
signal_enter_notify_event().connect (sigc::mem_fun(*this, &MixerStrip::mixer_strip_enter_event ));
|
||||
|
Loading…
Reference in New Issue
Block a user