deweese 2003/12/05 10:32:38 Modified: sources/org/apache/batik/bridge BridgeEventSupport.java SVGPatternElementBridge.java sources/org/apache/batik/css/engine CSSEngine.java sources/org/apache/batik/ext/awt/image/rendered Any2sRGBRed.java sources/org/apache/batik/util ParsedURLDefaultProtocolHandler.java Log: 1) Extra check on null element bounds in event handling. 2) Small optimization for attribute changes in CSSEngine. 3) Pattern element no longer applies object bounding box transform if viewBox is specified (per spec). Revision Changes Path 1.52 +5 -2 xml-batik/sources/org/apache/batik/bridge/BridgeEventSupport.java Index: BridgeEventSupport.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/BridgeEventSupport.java,v retrieving revision 1.51 retrieving revision 1.52 diff -u -r1.51 -r1.52 --- BridgeEventSupport.java 22 Aug 2003 10:49:06 -0000 1.51 +++ BridgeEventSupport.java 5 Dec 2003 18:32:37 -0000 1.52 @@ -54,6 +54,7 @@ import java.awt.event.KeyEvent; import java.awt.geom.NoninvertibleTransformException; import java.awt.geom.Point2D; +import java.awt.geom.Rectangle2D; import java.text.AttributedCharacterIterator; import java.util.List; @@ -437,7 +438,9 @@ float x = (float)pt.getX(); float y = (float)pt.getY(); TextHit textHit = layout.hitTestChar(x, y); - if (textHit != null && layout.getBounds2D().contains(x, y)) { + Rectangle2D bounds = layout.getBounds2D(); + if ((textHit != null) && + (bounds != null) && bounds.contains(x, y)) { Object delimiter = aci.getAttribute (GVTAttributedCharacterIterator.TextAttribute.TEXT_COMPOUND_DELIMITER); if (delimiter instanceof Element) { 1.25 +21 -20 xml-batik/sources/org/apache/batik/bridge/SVGPatternElementBridge.java Index: SVGPatternElementBridge.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/SVGPatternElementBridge.java,v retrieving revision 1.24 retrieving revision 1.25 diff -u -r1.24 -r1.25 --- SVGPatternElementBridge.java 8 Aug 2003 11:38:51 -0000 1.24 +++ SVGPatternElementBridge.java 5 Dec 2003 18:32:37 -0000 1.25 @@ -197,25 +197,26 @@ (patternElement, viewBoxStr, aspectRatioStr, w, h); patternContentTransform.concatenate(preserveAspectRatioTransform); - } + } else { + // + // Process patternContentUnitsTransform + // + if (contentCoordSystem == SVGUtilities.OBJECT_BOUNDING_BOX){ + AffineTransform patternContentUnitsTransform + = new AffineTransform(); + Rectangle2D objectBoundingBox = + paintedNode.getGeometryBounds(); + patternContentUnitsTransform.translate + (objectBoundingBox.getX(), + objectBoundingBox.getY()); - // - // Process patternContentUnitsTransform - // - if(contentCoordSystem == SVGUtilities.OBJECT_BOUNDING_BOX){ - AffineTransform patternContentUnitsTransform - = new AffineTransform(); - Rectangle2D objectBoundingBox = paintedNode.getGeometryBounds(); - patternContentUnitsTransform.translate - (objectBoundingBox.getX(), - objectBoundingBox.getY()); + patternContentUnitsTransform.scale + (objectBoundingBox.getWidth(), + objectBoundingBox.getHeight()); - patternContentUnitsTransform.scale - (objectBoundingBox.getWidth(), - objectBoundingBox.getHeight()); - - patternContentTransform.concatenate - (patternContentUnitsTransform); + patternContentTransform.concatenate + (patternContentUnitsTransform); + } } // 1.36 +4 -1 xml-batik/sources/org/apache/batik/css/engine/CSSEngine.java Index: CSSEngine.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/css/engine/CSSEngine.java,v retrieving revision 1.35 retrieving revision 1.36 diff -u -r1.35 -r1.36 --- CSSEngine.java 31 Oct 2003 22:39:41 -0000 1.35 +++ CSSEngine.java 5 Dec 2003 18:32:37 -0000 1.36 @@ -2313,6 +2313,9 @@ } MutationEvent mevt = (MutationEvent)evt; + if (mevt.getNewValue().equals(mevt.getPrevValue())) + return; // no change really... + Node attr = mevt.getRelatedNode(); String attrNS = attr.getNamespaceURI(); String name = (attrNS == null) 1.8 +3 -2 xml-batik/sources/org/apache/batik/ext/awt/image/rendered/Any2sRGBRed.java Index: Any2sRGBRed.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/ext/awt/image/rendered/Any2sRGBRed.java,v retrieving revision 1.7 retrieving revision 1.8 diff -u -r1.7 -r1.8 --- Any2sRGBRed.java 9 Aug 2003 16:58:42 -0000 1.7 +++ Any2sRGBRed.java 5 Dec 2003 18:32:37 -0000 1.8 @@ -238,7 +238,8 @@ op.filter(srcRas, wr); } else { ColorModel dstCM = getColorModel(); - if (srcCM.getColorSpace() == dstCM.getColorSpace()) { + if ((srcCM.getColorSpace() == dstCM.getColorSpace()) && + srcCM.isCompatibleRaster(wr)) { // No transform needed, just reformat data... // System.out.println("Bypassing"); 1.15 +2 -1 xml-batik/sources/org/apache/batik/util/ParsedURLDefaultProtocolHandler.java Index: ParsedURLDefaultProtocolHandler.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/util/ParsedURLDefaultProtocolHandler.java,v retrieving revision 1.14 retrieving revision 1.15 diff -u -r1.14 -r1.15 --- ParsedURLDefaultProtocolHandler.java 8 Aug 2003 11:39:26 -0000 1.14 +++ ParsedURLDefaultProtocolHandler.java 5 Dec 2003 18:32:38 -0000 1.15 @@ -111,6 +111,7 @@ return constructParsedURLData(url); } catch (MalformedURLException mue) { // Built in URL wouldn't take it... + // mue.printStackTrace(); } // new Exception("Custom Parse: " + urlStr).printStackTrace();
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]