summaryrefslogtreecommitdiff
path: root/gtk2_ardour/lineset.cc
diff options
context:
space:
mode:
authorCarl Hetherington <carl@carlh.net>2010-09-19 15:50:22 +0000
committerCarl Hetherington <carl@carlh.net>2010-09-19 15:50:22 +0000
commitaa00dbc40e00aa43caae6bfc188a27be2f23c636 (patch)
treed0e18b1894915da39b095ac1d2f1997ece94a8a2 /gtk2_ardour/lineset.cc
parentdadee4622d15218e0190b72797897fbb7b247711 (diff)
Fix MIDI streamview grid. Fixes #3460.
git-svn-id: svn://localhost/ardour2/branches/3.0@7806 d708f5d6-7413-0410-9779-e7cbd77b26cf
Diffstat (limited to 'gtk2_ardour/lineset.cc')
-rw-r--r--gtk2_ardour/lineset.cc41
1 files changed, 28 insertions, 13 deletions
diff --git a/gtk2_ardour/lineset.cc b/gtk2_ardour/lineset.cc
index 414f29cc0a..ac7ed56714 100644
--- a/gtk2_ardour/lineset.cc
+++ b/gtk2_ardour/lineset.cc
@@ -108,8 +108,7 @@ LineSet::line_compare(const Line& a, const Line& b)
void
LineSet::print_lines()
{
- for (Lines::iterator it = lines.begin(); it != lines.end(); ++it)
-{
+ for (Lines::iterator it = lines.begin(); it != lines.end(); ++it) {
cerr << " " << it->coord << " " << it->width << " " << (int)it->r << " " << (int)it->g << " " << (int)it->b << " " << (int)it->a << endl;
}
}
@@ -323,21 +322,26 @@ LineSet::line_at(double coord)
}
void
-LineSet::redraw_request(ArtIRect& r)
-{
- get_canvas()->request_redraw(r.x0, r.y0, r.x1, r.y1);
-}
-
-void
-LineSet::redraw_request(ArtDRect& r)
+LineSet::redraw_request (ArtDRect const & r)
{
int x0, y0, x1, y1;
Canvas& cv = *get_canvas();
//cerr << "redraw request: " << r.x0 << " " << r.y0 << " " << r.x1 << " " << r.y1 << endl;
- cv.w2c(r.x0, r.y0, x0, y0);
- cv.w2c(r.x1, r.y1, x1, y1);
+ double fx0 = r.x0;
+ if (fx0 > INT_MAX) {
+ fx0 = INT_MAX;
+ }
+
+ double fx1 = r.x1;
+ if (fx1 > INT_MAX) {
+ fx1 = INT_MAX;
+ }
+
+ cv.w2c (fx0, r.y0, x0, y0);
+ cv.w2c (fx1, r.y1, x1, y1);
+
cv.request_redraw(x0, y0, x1, y1);
}
@@ -403,8 +407,19 @@ LineSet::update_bounds()
item->y2 = new_b.y1;
/* Update bounding box used in rendering function */
- cv.w2c(new_b.x0, new_b.y0, bbox.x0, bbox.y0);
- cv.w2c(new_b.x1, new_b.y1, bbox.x1, bbox.y1);
+
+ double fx0 = new_b.x0;
+ if (fx0 > INT_MAX) {
+ fx0 = INT_MAX;
+ }
+
+ double fx1 = new_b.x1;
+ if (fx1 > INT_MAX) {
+ fx1 = INT_MAX;
+ }
+
+ cv.w2c (fx0, new_b.y0, bbox.x0, bbox.y0);
+ cv.w2c (fx1, new_b.y1, bbox.x1, bbox.y1);
/*
* if the first primary axis property (x1 for Vertical, y1 for Horizontal) changed, we must redraw everything,