summaryrefslogtreecommitdiff
path: root/gtk2_ardour/port_matrix.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-11-07 20:33:41 +0000
committerCarl Hetherington <carl@carlh.net>2009-11-07 20:33:41 +0000
commit660fd702af13ace2d0399e47d5e9a644a6e3a8d7 (patch)
tree3b3204fa23c82b246485e70d3e77001427edb6e7 /gtk2_ardour/port_matrix.cc
parent040869db5c5681ee1b89fb1893fbb076d5216d42 (diff)
Various tweaks to the bundle manager.
git-svn-id: svn://localhost/ardour2/branches/3.0@6030 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/port_matrix.cc')
-rw-r--r--gtk2_ardour/port_matrix.cc13
1 files changed, 13 insertions, 0 deletions
diff --git a/gtk2_ardour/port_matrix.cc b/gtk2_ardour/port_matrix.cc
index b8fe7d3333..0b87ee2ee1 100644
--- a/gtk2_ardour/port_matrix.cc
+++ b/gtk2_ardour/port_matrix.cc
@@ -65,6 +65,9 @@ PortMatrix::PortMatrix (Window* parent, Session& session, DataType type)
/* watch for the content of _ports[] changing */
_ports[i].Changed.connect (mem_fun (*this, &PortMatrix::setup));
+
+ /* and for bundles in _ports[] changing */
+ _ports[i].BundleChanged.connect (mem_fun (*this, &PortMatrix::bundle_changed));
}
_hscroll.signal_value_changed().connect (mem_fun (*this, &PortMatrix::hscroll_changed));
@@ -587,3 +590,13 @@ PortMatrix::add_channel_proxy (boost::weak_ptr<Bundle> w)
add_channel (b);
}
+
+void
+PortMatrix::bundle_changed (ARDOUR::Bundle::Change c)
+{
+ if (c & (Bundle::DirectionChanged | Bundle::TypeChanged)) {
+ setup_all_ports ();
+ }
+
+ setup ();
+}