From dc6571fb29e120b24a3ce3665dd04d291623ecc4 Mon Sep 17 00:00:00 2001 From: Carl Hetherington Date: Wed, 4 Feb 2009 14:26:00 +0000 Subject: 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 --- gtk2_ardour/port_matrix_body.cc | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) (limited to 'gtk2_ardour/port_matrix_body.cc') 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); +} -- cgit v1.2.3