diff --git a/libs/gtkmm2ext/fastmeter.cc b/libs/gtkmm2ext/fastmeter.cc index ccc0a77606..1fd3fbb597 100644 --- a/libs/gtkmm2ext/fastmeter.cc +++ b/libs/gtkmm2ext/fastmeter.cc @@ -353,7 +353,12 @@ FastMeter::vertical_expose (GdkEventExpose* ev) GdkRectangle background; top_of_meter = (gint) floor (pixheight * current_level); + + /* reset the height & origin of the rect that needs to show the pixbuf + */ + pixrect.height = top_of_meter; + pixrect.y = pixheight - top_of_meter; background.x = 0; background.y = 0; @@ -365,13 +370,13 @@ FastMeter::vertical_expose (GdkEventExpose* ev) intersection.x, intersection.y, intersection.width, intersection.height); } - + if (gdk_rectangle_intersect (&pixrect, &ev->area, &intersection)) { // draw the part of the meter image that we need. the area we draw is bounded "in reverse" (top->bottom) get_window()->draw_pixbuf(get_style()->get_fg_gc(get_state()), pixbuf, - intersection.x, pixheight - top_of_meter, - intersection.x, pixheight - top_of_meter, - intersection.width, pixrect.height, + intersection.x, intersection.y, + intersection.x, intersection.y, + intersection.width, intersection.height, Gdk::RGB_DITHER_NONE, 0, 0); } diff --git a/svn_revision.h b/svn_revision.h index 11a013c1df..0db5e1c0d0 100644 --- a/svn_revision.h +++ b/svn_revision.h @@ -1,4 +1,4 @@ #ifndef __ardour_svn_revision_h__ #define __ardour_svn_revision_h__ -static const char* ardour_svn_revision = "2878"; +static const char* ardour_svn_revision = "2882"; #endif