better math to find the area in teh child to update
authorDana Jansens <danakj@orodu.net>
Tue, 27 May 2003 18:28:20 +0000 (18:28 +0000)
committerDana Jansens <danakj@orodu.net>
Tue, 27 May 2003 18:28:20 +0000 (18:28 +0000)
render2/paint.c

index ebb876972afbfc3ddab69fa772e29987d366c4a0..64737761ab0607071dac28b46daa1243d0e7c1b7 100644 (file)
@@ -51,12 +51,14 @@ void RrPaintArea(struct RrSurface *sur, int x, int y, int w, int h)
         if (RrSurfaceX(child) < x+w &&
             RrSurfaceX(child) + RrSurfaceWidth(child) > x &&
             RrSurfaceY(child) < y+h &&
-            RrSurfaceY(child) + RrSurfaceHeight(child))
+            RrSurfaceY(child) + RrSurfaceHeight(child) > y)
             RrPaintArea(child,
                         MAX(0, x-RrSurfaceX(child)),
                         MAX(0, y-RrSurfaceY(child)),
-                        MIN(RrSurfaceWidth(child), w-(x-RrSurfaceX(child))),
-                        MIN(RrSurfaceHeight(child), h-(y-RrSurfaceY(child))));
+                        MIN(RrSurfaceWidth(child),
+                            w - MAX(0, (RrSurfaceX(child)-x))),
+                        MIN(RrSurfaceHeight(child),
+                            h - MAX(0, (RrSurfaceY(child)-y))));
     }
 
     if (!RrSurfaceVisible(sur)) return;