the real fix for fastmeter - the rect that should show the pixbuf didn't have its origin reset before computing the intersection with the expose rect

git-svn-id: svn://localhost/ardour2/branches/2.0-ongoing@2884 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Paul Davis 2008-01-10 22:19:54 +00:00
parent 0ea547b951
commit 55f6a421cb
2 changed files with 10 additions and 5 deletions

View file

@ -353,7 +353,12 @@ FastMeter::vertical_expose (GdkEventExpose* ev)
GdkRectangle background; GdkRectangle background;
top_of_meter = (gint) floor (pixheight * current_level); 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.height = top_of_meter;
pixrect.y = pixheight - top_of_meter;
background.x = 0; background.x = 0;
background.y = 0; background.y = 0;
@ -365,13 +370,13 @@ FastMeter::vertical_expose (GdkEventExpose* ev)
intersection.x, intersection.y, intersection.x, intersection.y,
intersection.width, intersection.height); intersection.width, intersection.height);
} }
if (gdk_rectangle_intersect (&pixrect, &ev->area, &intersection)) { 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) // 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, get_window()->draw_pixbuf(get_style()->get_fg_gc(get_state()), pixbuf,
intersection.x, pixheight - top_of_meter, intersection.x, intersection.y,
intersection.x, pixheight - top_of_meter, intersection.x, intersection.y,
intersection.width, pixrect.height, intersection.width, intersection.height,
Gdk::RGB_DITHER_NONE, 0, 0); Gdk::RGB_DITHER_NONE, 0, 0);
} }

View file

@ -1,4 +1,4 @@
#ifndef __ardour_svn_revision_h__ #ifndef __ardour_svn_revision_h__
#define __ardour_svn_revision_h__ #define __ardour_svn_revision_h__
static const char* ardour_svn_revision = "2878"; static const char* ardour_svn_revision = "2882";
#endif #endif