fix up ordering of rounding error handling for simpleline
authorPaul Davis <paul@linuxaudiosystems.com>
Wed, 29 Dec 2010 14:37:34 +0000 (14:37 +0000)
committerPaul Davis <paul@linuxaudiosystems.com>
Wed, 29 Dec 2010 14:37:34 +0000 (14:37 +0000)
git-svn-id: svn://localhost/ardour2/branches/3.0@8363 d708f5d6-7413-0410-9779-e7cbd77b26cf

gtk2_ardour/canvas-simpleline.c

index e34f4aa541314cc2dbf7681abb294473ead95d6c..6d583128558953c1681017ea2c0f895b0c6f43d8 100644 (file)
@@ -317,28 +317,28 @@ gnome_canvas_simpleline_update (GnomeCanvasItem *item, double *affine, ArtSVP *c
         gnome_canvas_item_i2w (item, &x1, &y1);
         gnome_canvas_item_i2w (item, &x2, &y2);
 
-        /* reset item bounding box (canvas coordinates, so integral. but stored in doubles) */
-
-        gnome_canvas_w2c_d (GNOME_CANVAS(item->canvas), x1, y1, &item->x1, &item->y1);
-        gnome_canvas_w2c_d (GNOME_CANVAS(item->canvas), x2, y2, &item->x2, &item->y2);
-
         /* don't suffer from rounding errors */
 
-        item->x1 = floor (item->x1);
-        item->y1 = floor (item->y1);
-        item->x2 = ceil (item->x2);
-        item->y2 = ceil (item->y2);
+        x1 = floor (x1);
+        y1 = floor (y1);
+        x2 = ceil (x2);
+        y2 = ceil (y2);
 
         /* force non-zero dimensionality for both axes */
-
-        if (item->x1 == item->x2) {
-                item->x2 += 1.0;
+        
+        if (x1 == x2) {
+                x2 += 1.0;
         }
 
-        if (item->y1 == item->y2) {
-                item->y2 += 1.0;
+        if (y1 == y2) {
+                y2 += 1.0;
         }
 
+        /* reset item bounding box (canvas coordinates, so integral. but stored in doubles) */
+
+        gnome_canvas_w2c_d (GNOME_CANVAS(item->canvas), x1, y1, &item->x1, &item->y1);
+        gnome_canvas_w2c_d (GNOME_CANVAS(item->canvas), x2, y2, &item->x2, &item->y2);
+
         /* redraw new location */
 
         gnome_canvas_request_redraw (item->canvas, item->x1, item->y1, item->x2, item->y2);