summaryrefslogtreecommitdiff
path: root/gtk2_ardour/port_matrix_body.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2009-02-04 14:26:00 +0000
committerCarl Hetherington <carl@carlh.net>2009-02-04 14:26:00 +0000
commitdc6571fb29e120b24a3ce3665dd04d291623ecc4 (patch)
tree23e6becb946edc84b68c9295bef4b59c1be79577 /gtk2_ardour/port_matrix_body.cc
parentb6daa2d643c5cf4d07ae53b7e347b03e1bc145de (diff)
Fix minor visual glitch with mouseover when a label is partially out-of-sight.
git-svn-id: svn://localhost/ardour2/branches/3.0@4489 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/port_matrix_body.cc')
-rw-r--r--gtk2_ardour/port_matrix_body.cc20
1 files changed, 20 insertions, 0 deletions
diff --git a/gtk2_ardour/port_matrix_body.cc b/gtk2_ardour/port_matrix_body.cc
index 8c75cac74b..de73adcaff 100644
--- a/gtk2_ardour/port_matrix_body.cc
+++ b/gtk2_ardour/port_matrix_body.cc
@@ -97,9 +97,22 @@ PortMatrixBody::on_expose_event (GdkEventExpose* event)
}
cairo_t* cr = gdk_cairo_create (get_window()->gobj());
+
+ cairo_save (cr);
+ set_cairo_clip (cr, _grid.parent_rectangle ());
_grid.draw_extra (cr);
+ cairo_restore (cr);
+
+ cairo_save (cr);
+ set_cairo_clip (cr, _row_labels.parent_rectangle ());
_row_labels.draw_extra (cr);
+ cairo_restore (cr);
+
+ cairo_save (cr);
+ set_cairo_clip (cr, _column_labels.parent_rectangle ());
_column_labels.draw_extra (cr);
+ cairo_restore (cr);
+
cairo_destroy (cr);
return true;
@@ -458,3 +471,10 @@ PortMatrixBody::highlight_associated_channels (int dim, uint32_t N)
}
}
}
+
+void
+PortMatrixBody::set_cairo_clip (cairo_t* cr, Gdk::Rectangle const & r) const
+{
+ cairo_rectangle (cr, r.get_x(), r.get_y(), r.get_width(), r.get_height());
+ cairo_clip (cr);
+}