summaryrefslogtreecommitdiff
path: root/gtk2_ardour/port_matrix_body.cc
diff options
context:
space:
mode:
Diffstat (limited to 'gtk2_ardour/port_matrix_body.cc')
-rw-r--r--gtk2_ardour/port_matrix_body.cc21
1 files changed, 13 insertions, 8 deletions
diff --git a/gtk2_ardour/port_matrix_body.cc b/gtk2_ardour/port_matrix_body.cc
index 3d961baa5c..79efd22b7c 100644
--- a/gtk2_ardour/port_matrix_body.cc
+++ b/gtk2_ardour/port_matrix_body.cc
@@ -328,14 +328,19 @@ PortMatrixBody::on_button_press_event (GdkEventButton* ev)
bool
PortMatrixBody::on_button_release_event (GdkEventButton* ev)
{
- if (Gdk::Region (_grid->parent_rectangle()).point_in (ev->x, ev->y)) {
-
- _grid->button_release (
- _grid->parent_to_component_x (ev->x),
- _grid->parent_to_component_y (ev->y),
- ev->button, ev->time
- );
-
+ for (list<PortMatrixComponent*>::iterator i = _components.begin(); i != _components.end(); ++i) {
+ if (Gdk::Region ((*i)->parent_rectangle()).point_in (ev->x, ev->y)) {
+ (*i)->button_release (
+ (*i)->parent_to_component_x (ev->x),
+ (*i)->parent_to_component_y (ev->y),
+ ev->button, ev->time
+ );
+ } else {
+ (*i)->button_release (
+ -1, -1,
+ ev->button, ev->time
+ );
+ }
}
return true;