Hi Tonny.

Tonny Kohar:
> Change on Fill Rule (nonzero, evenodd) does not update the canvas,
> unless the point/coordinated of the element is changed then it will
> update the canvas
> 
> Here I attached the sample program to reproduce
> 
> Here is the bug id: #26879

Looks like you're right.  Here's a patch that should fix the problem
(which also occurs with polygon and polyline elements).

Maybe if Vincent or Thomas are listening they could consider checking it
in to CVS.

Cameron

-- 
Cameron McCormack
|  Web: http://mcc.id.au/
|  ICQ: 26955922
--- sources/org/apache/batik/bridge/SVGPathElementBridge.java   2004-04-29 
17:48:11.000000000 +1000
+++ sources/org/apache/batik/bridge/SVGPathElementBridge.java.new       2004-04-29 
17:54:19.000000000 +1000
@@ -53,6 +53,8 @@
 import java.awt.Shape;
 import java.awt.geom.GeneralPath;
 
+import org.apache.batik.css.engine.CSSEngineEvent;
+import org.apache.batik.css.engine.SVGCSSEngine;
 import org.apache.batik.gvt.ShapeNode;
 import org.apache.batik.parser.AWTPathProducer;
 import org.apache.batik.parser.ParseException;
@@ -144,4 +146,15 @@
             super.handleDOMAttrModifiedEvent(evt);
         }
     }
+
+    protected void handleCSSPropertyChanged(int property) {
+        switch(property) {
+        case SVGCSSEngine.FILL_RULE_INDEX:
+            buildShape(ctx, e, (ShapeNode) node);
+            handleGeometryChanged();
+            break;
+        default:
+            super.handleCSSPropertyChanged(property);
+        }
+    }
 }
--- sources/org/apache/batik/bridge/SVGPolygonElementBridge.java        2004-04-29 
17:58:34.000000000 +1000
+++ sources/org/apache/batik/bridge/SVGPolygonElementBridge.java.new    2004-04-29 
17:59:14.000000000 +1000
@@ -53,6 +53,8 @@
 import java.awt.Shape;
 import java.awt.geom.GeneralPath;
 
+import org.apache.batik.css.engine.CSSEngineEvent;
+import org.apache.batik.css.engine.SVGCSSEngine;
 import org.apache.batik.gvt.ShapeNode;
 import org.apache.batik.parser.AWTPolygonProducer;
 import org.apache.batik.parser.ParseException;
@@ -143,4 +145,15 @@
             super.handleDOMAttrModifiedEvent(evt);
         }
     }
+
+    protected void handleCSSPropertyChanged(int property) {
+        switch(property) {
+        case SVGCSSEngine.FILL_RULE_INDEX:
+            buildShape(ctx, e, (ShapeNode) node);
+            handleGeometryChanged();
+            break;
+        default:
+            super.handleCSSPropertyChanged(property);
+        }
+    }
 }
--- sources/org/apache/batik/bridge/SVGPolylineElementBridge.java       2004-04-29 
17:58:53.000000000 +1000
+++ sources/org/apache/batik/bridge/SVGPolylineElementBridge.java.new   2004-04-29 
18:00:23.000000000 +1000
@@ -53,6 +53,8 @@
 import java.awt.Shape;
 import java.awt.geom.GeneralPath;
 
+import org.apache.batik.css.engine.CSSEngineEvent;
+import org.apache.batik.css.engine.SVGCSSEngine;
 import org.apache.batik.gvt.ShapeNode;
 import org.apache.batik.parser.AWTPolylineProducer;
 import org.apache.batik.parser.ParseException;
@@ -143,4 +145,15 @@
             super.handleDOMAttrModifiedEvent(evt);
         }
     }
+
+    protected void handleCSSPropertyChanged(int property) {
+        switch(property) {
+        case SVGCSSEngine.FILL_RULE_INDEX:
+            buildShape(ctx, e, (ShapeNode) node);
+            handleGeometryChanged();
+            break;
+        default:
+            super.handleCSSPropertyChanged(property);
+        }
+    }
 }

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to