Fix assertion failure on clicking on bundles whose channels are all of the wrong...
[ardour.git] / gtk2_ardour / port_matrix.cc
index ae2b19075bdbd1198c251a190ff8582bf7ee52ef..d7e2cfd7fadcd4f83ba03180fef2e0a8f2188c2c 100644 (file)
@@ -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;