summaryrefslogtreecommitdiff
path: root/libs/canvas
diff options
context:
space:
mode:
authorPaul Davis <paul@linuxaudiosystems.com>2016-09-25 16:44:20 -0500
committerPaul Davis <paul@linuxaudiosystems.com>2016-09-27 14:59:32 -0500
commit1c94f6490e3f0bd4b35a001a9a530cee752100b0 (patch)
treed7fe53b89aad8696477d16575193b88a7acf8e1d /libs/canvas
parentfccd0da9c6bf6045c000221fa2f4052b5bf25311 (diff)
bug fixes for vertically-drawn Canvas::Meter
Diffstat (limited to 'libs/canvas')
-rw-r--r--libs/canvas/meter.cc16
1 files changed, 9 insertions, 7 deletions
diff --git a/libs/canvas/meter.cc b/libs/canvas/meter.cc
index d71370ad48..8d91e49d3e 100644
--- a/libs/canvas/meter.cc
+++ b/libs/canvas/meter.cc
@@ -505,10 +505,13 @@ Meter::vertical_expose (ArdourCanvas::Rect const & area, Cairo::RefPtr<Cairo::Co
Cairo::RectangleInt background;
Cairo::RectangleInt area_r;
- area_r.x = area.x0;
- area_r.y = area.y0;
- area_r.width = area.width();
- area_r.height = area.height();
+ /* convert expose area back to item coordinate space */
+ Rect area2 = window_to_item (area);
+
+ area_r.x = area2.x0;
+ area_r.y = area2.y0;
+ area_r.width = area2.width();
+ area_r.height = area2.height();
context->set_source_rgb (0, 0, 0); // black
rounded_rectangle (context, 0, 0, pixwidth + 2, pixheight + 2, 2);
@@ -537,8 +540,8 @@ Meter::vertical_expose (ArdourCanvas::Rect const & area, Cairo::RefPtr<Cairo::Co
if (!r1->empty()) {
Cairo::RectangleInt i (r1->get_extents ());
- context->rectangle (i.x, i.y, i.width, i.height);
context->set_source (bgpattern);
+ context->rectangle (i.x, i.y, i.width, i.height);
context->fill ();
}
@@ -548,8 +551,8 @@ Meter::vertical_expose (ArdourCanvas::Rect const & area, Cairo::RefPtr<Cairo::Co
if (!r2->empty()) {
// draw the part of the meter image that we need. the area we draw is bounded "in reverse" (top->bottom)
Cairo::RectangleInt i (r2->get_extents ());
- context->rectangle (i.x, i.y, i.width, i.height);
context->set_source (fgpattern);
+ context->rectangle (i.x, i.y, i.width, i.height);
context->fill ();
}
@@ -595,7 +598,6 @@ Meter::horizontal_expose (ArdourCanvas::Rect const & area, Cairo::RefPtr<Cairo::
/* convert expose area back to item coordinate space */
Rect area2 = window_to_item (area);
-
/* create a Cairo object so that we can use intersect and Region */
area_r.x = area2.x0;
area_r.y = area2.y0;