You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by ca...@apache.org on 2008/11/13 03:50:32 UTC

svn commit: r713617 - in /xmlgraphics/batik/trunk/sources/org/apache/batik: bridge/RepaintManager.java gvt/renderer/DynamicRenderer.java

Author: cam
Date: Wed Nov 12 18:50:31 2008
New Revision: 713617

URL: http://svn.apache.org/viewvc?rev=713617&view=rev
Log:
Avoid repainting failures in some circurmstances when the canvas
is resized.  Fix from Thomas in:
  http://markmail.org/message/snmfoso5ue6s3ger

Modified:
    xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/RepaintManager.java
    xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/DynamicRenderer.java

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/RepaintManager.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/RepaintManager.java?rev=713617&r1=713616&r2=713617&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/RepaintManager.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/bridge/RepaintManager.java Wed Nov 12 18:50:31 2008
@@ -80,10 +80,10 @@
 
             rects.add(r);
         }
-        RectListManager devRLM =null;
+        RectListManager devRLM = null;
         try {
-             devRLM = new RectListManager(rects);
-             devRLM.mergeRects(COPY_OVERHEAD, COPY_LINE_OVERHEAD);
+            devRLM = new RectListManager(rects);
+            devRLM.mergeRects(COPY_OVERHEAD, COPY_LINE_OVERHEAD);
         } catch(Exception e) {
             e.printStackTrace();
         }

Modified: xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/DynamicRenderer.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/DynamicRenderer.java?rev=713617&r1=713616&r2=713617&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/DynamicRenderer.java (original)
+++ xmlgraphics/batik/trunk/sources/org/apache/batik/gvt/renderer/DynamicRenderer.java Wed Nov 12 18:50:31 2008
@@ -179,6 +179,10 @@
         boolean repaintAll = false;
 
         Rectangle dr = copyRaster.getBounds();
+        Rectangle sr = null;
+        if (currentRaster != null) {
+            sr = currentRaster.getBounds();
+        }
 
         // Ensure only one thread works on baseRaster at a time...
         synchronized (syncRaster) {
@@ -216,6 +220,8 @@
                         Rectangle r = (Rectangle)iter.next();
                         if (!dr.intersects(r)) continue;
                         r = dr.intersection(r);
+                        if (sr != null && !sr.intersects(r)) continue;
+                        r = sr.intersection(r);
                         // System.err.println("Copy: " + r);
                         Raster src = currentRaster.createWritableChild
                             (r.x, r.y, r.width, r.height, r.x, r.y, null);
@@ -252,11 +258,12 @@
             }
         }
 
-        if (HaltingThread.hasBeenHalted())
+        if (HaltingThread.hasBeenHalted()) {
             return;
+        }
 
         // System.out.println("Dmg: "   + damagedAreas);
-        // System.out.println("Areas: " + devRects);
+        // System.out.println("Areas: " + devRLM);
 
         // Swap the buffers if the rendering completed cleanly.
         BufferedImage tmpBI = workingOffScreen;