summaryrefslogtreecommitdiff
path: root/gtk2_ardour/port_matrix.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2011-09-27 20:15:49 +0000
committerCarl Hetherington <carl@carlh.net>2011-09-27 20:15:49 +0000
commit89543bf4db0dfb7a28343d46ad1211393980125e (patch)
treeb61f44179a69b9a1afde6295664e576db12356f2 /gtk2_ardour/port_matrix.cc
parent20dc91d0adf8bc54acb1bdb7fe6e368255d75e56 (diff)
Fix assertion failure on clicking on bundles whose channels are all of the wrong type.
git-svn-id: svn://localhost/ardour2/branches/3.0@10147 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/port_matrix.cc')
-rw-r--r--gtk2_ardour/port_matrix.cc10
1 files changed, 10 insertions, 0 deletions
diff --git a/gtk2_ardour/port_matrix.cc b/gtk2_ardour/port_matrix.cc
index ae2b19075b..d7e2cfd7fa 100644
--- a/gtk2_ardour/port_matrix.cc
+++ b/gtk2_ardour/port_matrix.cc
@@ -379,11 +379,21 @@ PortMatrix::visible_rows () const
return visible_ports (_row_index);
}
+/** @param column Column; its bundle may be 0 if we are over a row heading.
+ * @param row Row; its bundle may be 0 if we are over a column heading.
+ */
void
PortMatrix::popup_menu (BundleChannel column, BundleChannel row, uint32_t t)
{
using namespace Menu_Helpers;
+ if ((row.bundle && row.bundle->nchannels().n_total() == 0) || (column.bundle && column.bundle->nchannels().n_total() == 0)) {
+ /* One of the bundles has no channels, which means that it has none of the appropriate type,
+ and is only being displayed to look pretty. So we don't need to do anything.
+ */
+ return;
+ }
+
delete _menu;
_menu = new Menu;