- if (!_matrix->show_only_bundles()) {
- y = 0;
- N = 0;
- for (PortGroup::BundleList::const_iterator i = r.begin(); i != r.end(); ++i) {
- for (uint32_t j = 0; j < i->bundle->nchannels(); ++j) {
- render_channel_name (cr, i->has_colour ? i->colour : get_a_bundle_colour (N), 0, y, ARDOUR::BundleChannel (i->bundle, j));
- y += row_height();
+ if ((*i)->visible ()) {
+
+ PortGroup::BundleList const & bundles = (*i)->bundles ();
+ for (PortGroup::BundleList::const_iterator j = bundles.begin(); j != bundles.end(); ++j) {
+ render_bundle_name (cr, j->has_colour ? j->colour : get_a_bundle_colour (N), 0, y, j->bundle);
+
+ if (!_matrix->show_only_bundles()) {
+ for (uint32_t k = 0; k < j->bundle->nchannels(); ++k) {
+ Gdk::Color c = j->has_colour ? j->colour : get_a_bundle_colour (M);
+ render_channel_name (cr, c, 0, y, ARDOUR::BundleChannel (j->bundle, k));
+ y += grid_spacing();
+ ++M;
+ }
+ } else {
+ y += grid_spacing();
+ }
+
+ ++N;