From 82f31ffc796146389332295b51f27254e945fe01 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Sun, 19 Jul 2009 21:23:16 +0000 Subject: No highlighting at all when mouse is over a collapsed group. Fix crash on clicking in a collapsed group. git-svn-id: svn://localhost/ardour2/branches/3.0@5388 d708f5d6-7413-0410-9779-e7cbd77b26cf --- gtk2_ardour/port_matrix_column_labels.cc | 2 +- gtk2_ardour/port_matrix_grid.cc | 17 ++++++++++++----- gtk2_ardour/port_matrix_row_labels.cc | 2 +- 3 files changed, 14 insertions(+), 7 deletions(-) (limited to 'gtk2_ardour') diff --git a/gtk2_ardour/port_matrix_column_labels.cc b/gtk2_ardour/port_matrix_column_labels.cc index 1679b321df..ba27120b57 100644 --- a/gtk2_ardour/port_matrix_column_labels.cc +++ b/gtk2_ardour/port_matrix_column_labels.cc @@ -270,7 +270,7 @@ void PortMatrixColumnLabels::mouseover_changed (PortMatrixNode const &) { clear_channel_highlights (); - if (_body->mouseover().column.bundle) { + if (_body->mouseover().column.bundle && _body->mouseover().row.bundle) { add_channel_highlight (_body->mouseover().column); } } diff --git a/gtk2_ardour/port_matrix_grid.cc b/gtk2_ardour/port_matrix_grid.cc index 50740cae63..4682f6f3c3 100644 --- a/gtk2_ardour/port_matrix_grid.cc +++ b/gtk2_ardour/port_matrix_grid.cc @@ -420,9 +420,10 @@ PortMatrixGrid::button_release (double x, double y, int b, uint32_t t) } else { PortMatrixNode const n = position_to_node (x / grid_spacing(), y / grid_spacing()); - PortMatrixNode::State const s = get_association (n); - - set_association (n, toggle_state (s)); + if (n.row.bundle && n.column.bundle) { + PortMatrixNode::State const s = get_association (n); + set_association (n, toggle_state (s)); + } } require_render (); @@ -619,9 +620,15 @@ PortMatrixGrid::nodes_on_line (int x0, int y0, int x1, int y1) const for (int x = x0; x <= x1; ++x) { if (steep) { - p.push_back (position_to_node (y, x)); + PortMatrixNode n = position_to_node (y, x); + if (n.row.bundle && n.column.bundle) { + p.push_back (n); + } } else { - p.push_back (position_to_node (x, y)); + PortMatrixNode n = position_to_node (x, y); + if (n.row.bundle && n.column.bundle) { + p.push_back (n); + } } err += derr; diff --git a/gtk2_ardour/port_matrix_row_labels.cc b/gtk2_ardour/port_matrix_row_labels.cc index 7b4383155d..8d7410d319 100644 --- a/gtk2_ardour/port_matrix_row_labels.cc +++ b/gtk2_ardour/port_matrix_row_labels.cc @@ -364,7 +364,7 @@ void PortMatrixRowLabels::mouseover_changed (PortMatrixNode const &) { clear_channel_highlights (); - if (_body->mouseover().row.bundle) { + if (_body->mouseover().column.bundle && _body->mouseover().row.bundle) { add_channel_highlight (_body->mouseover().row); } } -- cgit v1.2.3