summaryrefslogtreecommitdiff
path: root/gtk2_ardour/meterbridge.cc
diff options
context:
space:
mode:
authorRobin Gareus <robin@gareus.org>2019-02-16 23:36:59 +0100
committerRobin Gareus <robin@gareus.org>2019-02-16 23:37:21 +0100
commit4ee15fa7b3c0584e01f7978f2c7a99e5df3a6ed3 (patch)
tree3b99248d574fb1691eb18d5fb43fdc903f0db271 /gtk2_ardour/meterbridge.cc
parent23a98e5f4df2f559de98902663faa96102093748 (diff)
Tweak meterbridge track reordering -- amend d03574987
Diffstat (limited to 'gtk2_ardour/meterbridge.cc')
-rw-r--r--gtk2_ardour/meterbridge.cc12
1 files changed, 7 insertions, 5 deletions
diff --git a/gtk2_ardour/meterbridge.cc b/gtk2_ardour/meterbridge.cc
index 5f8ed9fea6..54e716d8a9 100644
--- a/gtk2_ardour/meterbridge.cc
+++ b/gtk2_ardour/meterbridge.cc
@@ -135,8 +135,9 @@ Meterbridge::Meterbridge ()
signal_delete_event().connect (sigc::mem_fun (*this, &Meterbridge::hide_window));
signal_configure_event().connect (sigc::mem_fun (*ARDOUR_UI::instance(), &ARDOUR_UI::configure_handler));
MeterStrip::CatchDeletion.connect (*this, invalidator (*this), boost::bind (&Meterbridge::remove_strip, this, _1), gui_context());
- MeterStrip::MetricChanged.connect (*this, invalidator (*this), boost::bind(&Meterbridge::resync_order, this), gui_context());
+ MeterStrip::MetricChanged.connect (*this, invalidator (*this), boost::bind(&Meterbridge::sync_order_keys, this), gui_context());
MeterStrip::ConfigurationChanged.connect (*this, invalidator (*this), boost::bind(&Meterbridge::queue_resize, this), gui_context());
+ PresentationInfo::Change.connect (*this, invalidator (*this), boost::bind (&Meterbridge::resync_order, this, _1), gui_context());
/* work around ScrolledWindowViewport alignment mess Part one */
Gtk::HBox * yspc = manage (new Gtk::HBox());
@@ -440,7 +441,6 @@ Meterbridge::set_session (Session* s)
_session->StateSaved.connect (_session_connections, invalidator (*this), boost::bind (&Meterbridge::update_title, this), gui_context());
_session->config.ParameterChanged.connect (*this, invalidator (*this), ui_bind (&Meterbridge::parameter_changed, this, _1), gui_context());
Config->ParameterChanged.connect (*this, invalidator (*this), ui_bind (&Meterbridge::parameter_changed, this, _1), gui_context());
- PresentationInfo::Change.connect (*this, invalidator (*this), boost::bind (&Meterbridge::resync_order, this), gui_context());
if (_visible) {
show_window();
@@ -553,7 +553,7 @@ Meterbridge::add_strips (RouteList& routes)
strip = new MeterStrip (_session, route);
strips.push_back (MeterBridgeStrip(strip));
- route->active_changed.connect (*this, invalidator (*this), boost::bind (&Meterbridge::resync_order, this), gui_context ());
+ route->active_changed.connect (*this, invalidator (*this), boost::bind (&Meterbridge::sync_order_keys, this), gui_context ());
meterarea.pack_start (*strip, false, false);
strip->show();
@@ -718,9 +718,11 @@ Meterbridge::sync_order_keys ()
}
void
-Meterbridge::resync_order()
+Meterbridge::resync_order (PropertyChange what_changed)
{
- sync_order_keys();
+ if (what_changed.contains (ARDOUR::Properties::order)) {
+ sync_order_keys();
+ }
}
void