deweese     2002/11/14 11:44:49

  Modified:    sources/org/apache/batik/bridge BridgeContext.java
                        BridgeEventSupport.java CursorManager.java
               sources/org/apache/batik/swing/svg JSVGComponent.java
  Log:
  1) getRelatedTarget fixed for mouseout event.
  2) Modified the new Custom Cursor code so the cursor doesn't
     'flicker' as much.
  
  Revision  Changes    Path
  1.55      +12 -3     xml-batik/sources/org/apache/batik/bridge/BridgeContext.java
  
  Index: BridgeContext.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/BridgeContext.java,v
  retrieving revision 1.54
  retrieving revision 1.55
  diff -u -r1.54 -r1.55
  --- BridgeContext.java        14 Nov 2002 14:57:12 -0000      1.54
  +++ BridgeContext.java        14 Nov 2002 19:44:49 -0000      1.55
  @@ -52,6 +52,7 @@
   import org.w3c.dom.events.EventListener;
   import org.w3c.dom.events.EventTarget;
   import org.w3c.dom.events.MutationEvent;
  +import org.w3c.dom.events.MouseEvent;
   import org.w3c.dom.svg.SVGDocument;
   
   import org.apache.batik.gvt.filter.GraphicsNodeRableFactory;
  @@ -951,7 +952,16 @@
        */
       protected class DOMMouseOutEventListener implements EventListener {
           public void handleEvent(Event evt) {
  -            userAgent.setSVGCursor(CursorManager.DEFAULT_CURSOR);
  +            MouseEvent me = (MouseEvent)evt;
  +            Element newTarget = (Element)me.getRelatedTarget();
  +            Cursor cursor = CursorManager.DEFAULT_CURSOR;
  +            if (newTarget != null)
  +                cursor = CSSUtilities.convertCursor
  +                    (newTarget, BridgeContext.this);
  +            if (cursor == null) 
  +                cursor = CursorManager.DEFAULT_CURSOR;
  +
  +            userAgent.setSVGCursor(cursor);
           }
       }
   
  @@ -969,7 +979,6 @@
            */
           public void handleEvent(Event evt) {
               Element target = (Element)evt.getTarget();
  -            String tag = target.getNodeName();
               Cursor cursor = CSSUtilities.convertCursor(target, BridgeContext.this);
               
               if (cursor != null) {
  
  
  
  1.45      +8 -6      
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.44
  retrieving revision 1.45
  diff -u -r1.44 -r1.45
  --- BridgeEventSupport.java   8 Oct 2002 15:43:10 -0000       1.44
  +++ BridgeEventSupport.java   14 Nov 2002 19:44:49 -0000      1.45
  @@ -214,7 +214,8 @@
   
           public void mouseExited(GraphicsNodeMouseEvent evt) {
               Point clientXY = getClientMouseLocation(evt.getPoint2D());
  -            GraphicsNode node = evt.getGraphicsNode();
  +            // Get the 'new' node for the DOM event.
  +            GraphicsNode node = evt.getRelatedNode();
               Element targetElement = getEventTarget(node, clientXY);
               if (lastTargetElement != null) {
                   dispatchMouseEvent("mouseout", 
  @@ -234,10 +235,11 @@
               Point clientXY = getClientMouseLocation(evt.getPoint2D());
               GraphicsNode node = evt.getGraphicsNode();
               Element targetElement = getEventTarget(node, clientXY);
  -            if (lastTargetElement != targetElement) {
  -                if (lastTargetElement != null) {
  +            Element holdLTE = lastTargetElement;
  +            if (holdLTE != targetElement) {
  +                if (holdLTE != null) {
                       dispatchMouseEvent("mouseout", 
  -                                       lastTargetElement, // target
  +                                       holdLTE, // target
                                          targetElement,     // relatedTarget
                                          clientXY,
                                          evt,
  @@ -246,7 +248,7 @@
                   if (targetElement != null) {
                       dispatchMouseEvent("mouseover", 
                                          targetElement,     // target
  -                                       lastTargetElement, // relatedTarget
  +                                       holdLTE, // relatedTarget
                                          clientXY,
                                          evt,
                                          true);
  
  
  
  1.4       +6 -8      xml-batik/sources/org/apache/batik/bridge/CursorManager.java
  
  Index: CursorManager.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/bridge/CursorManager.java,v
  retrieving revision 1.3
  retrieving revision 1.4
  diff -u -r1.3 -r1.4
  --- CursorManager.java        14 Nov 2002 16:35:18 -0000      1.3
  +++ CursorManager.java        14 Nov 2002 19:44:49 -0000      1.4
  @@ -26,6 +26,7 @@
   import java.util.Hashtable;
   import java.lang.ref.SoftReference;
   
  +import org.apache.batik.ext.awt.image.GraphicsUtil;
   import org.apache.batik.ext.awt.image.spi.ImageTagRegistry;
   import org.apache.batik.ext.awt.image.renderable.Filter;
   
  @@ -218,7 +219,7 @@
                                                           (int)Math.round(rh),
                                                           null);
               
  -            if (bi instanceof Image) {
  +            if (img instanceof Image) {
                   bi = (Image)img;
               } else {
                   bi = renderedImageToImage(img);
  @@ -237,8 +238,8 @@
               RenderedImage ri = f.createScaledRendering(preferredSize.width,
                                                          preferredSize.height,
                                                          null);
  -            Graphics2D g = tbi.createGraphics();
  -            g.drawRenderedImage(ri, new AffineTransform());
  +            Graphics2D g = GraphicsUtil.createGraphics(tbi);
  +            GraphicsUtil.drawImage(g, ri);
               g.dispose();
               bi = tbi;
           }
  @@ -274,10 +275,7 @@
           WritableRaster wr = Raster.createWritableRaster(sm, new Point(x,y));
           ri.copyData(wr);
   
  -        return new BufferedImage(ri.getColorModel(),
  -                                 wr,
  -                                 cm.isAlphaPremultiplied(),
  -                                 null);
  +        return new BufferedImage(cm, wr, cm.isAlphaPremultiplied(), null);
       }
   
       /**
  
  
  
  1.61      +3 -2      xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java
  
  Index: JSVGComponent.java
  ===================================================================
  RCS file: /home/cvs/xml-batik/sources/org/apache/batik/swing/svg/JSVGComponent.java,v
  retrieving revision 1.60
  retrieving revision 1.61
  diff -u -r1.60 -r1.61
  --- JSVGComponent.java        13 Nov 2002 20:20:51 -0000      1.60
  +++ JSVGComponent.java        14 Nov 2002 19:44:49 -0000      1.61
  @@ -2536,7 +2536,8 @@
            * @param cursor the new cursor
            */
           public void setSVGCursor(Cursor cursor) {
  -            JSVGComponent.this.setCursor(cursor);
  +            if (cursor != JSVGComponent.this.getCursor())
  +                JSVGComponent.this.setCursor(cursor);
           }
   
           /**
  
  
  

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

Reply via email to