deweese 2003/03/24 16:31:22 Modified: sources/org/apache/batik/bridge BridgeEventSupport.java sources/org/apache/batik/gvt/event AWTEventDispatcher.java GraphicsNodeMouseEvent.java Log: 1) Fixed bug in text selection (corrected 'error' in GraphicsNodeMouseEvent introduced when adding currentScale/Translate support). Revision Changes Path 1.46 +4 -20 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.45 retrieving revision 1.46 diff -u -r1.45 -r1.46 --- BridgeEventSupport.java 14 Nov 2002 19:44:49 -0000 1.45 +++ BridgeEventSupport.java 25 Mar 2003 00:31:22 -0000 1.46 @@ -213,7 +213,7 @@ } public void mouseExited(GraphicsNodeMouseEvent evt) { - Point clientXY = getClientMouseLocation(evt.getPoint2D()); + Point clientXY = evt.getClientPoint(); // Get the 'new' node for the DOM event. GraphicsNode node = evt.getRelatedNode(); Element targetElement = getEventTarget(node, clientXY); @@ -232,7 +232,7 @@ } public void mouseMoved(GraphicsNodeMouseEvent evt) { - Point clientXY = getClientMouseLocation(evt.getPoint2D()); + Point clientXY = evt.getClientPoint(); GraphicsNode node = evt.getGraphicsNode(); Element targetElement = getEventTarget(node, clientXY); Element holdLTE = lastTargetElement; @@ -273,7 +273,7 @@ protected void dispatchMouseEvent(String eventType, GraphicsNodeMouseEvent evt, boolean cancelable) { - Point clientXY = getClientMouseLocation(evt.getPoint2D()); + Point clientXY = evt.getClientPoint(); GraphicsNode node = evt.getGraphicsNode(); Element targetElement = getEventTarget(node, clientXY); Element relatedElement = getRelatedElement(evt); @@ -375,22 +375,6 @@ button = 2; } return button; - } - - /** - * Returns the client mouse coordinates using the specified - * mouse coordinates in the GVT Tree space. - * - * @param coords the mouse coordinates in the GVT tree space - */ - protected Point getClientMouseLocation(Point2D coords) { - AffineTransform transform = ua.getTransform(); - Point2D p = coords; - if (transform != null && !transform.isIdentity()) { - p = transform.transform(coords, null); - } - return new Point((int)Math.floor(coords.getX()), - (int)Math.floor(coords.getY())); } /** 1.12 +19 -9 xml-batik/sources/org/apache/batik/gvt/event/AWTEventDispatcher.java Index: AWTEventDispatcher.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/gvt/event/AWTEventDispatcher.java,v retrieving revision 1.11 retrieving revision 1.12 diff -u -r1.11 -r1.12 --- AWTEventDispatcher.java 24 Feb 2003 18:25:53 -0000 1.11 +++ AWTEventDispatcher.java 25 Mar 2003 00:31:22 -0000 1.12 @@ -350,6 +350,8 @@ Point screenPos = evt.getComponent().getLocationOnScreen(); screenPos.x += evt.getX(); screenPos.y += evt.getY(); + + if (lastHit != node) { // post an MOUSE_EXITED if (lastHit != null) { @@ -358,8 +360,10 @@ MOUSE_EXITED, evt.getWhen(), evt.getModifiers(), - (float)p.getX(), - (float)p.getY(), + (float)gnp.getX(), + (float)gnp.getY(), + (int)Math.floor(p.getX()), + (int)Math.floor(p.getY()), screenPos.x, screenPos.y, evt.getClickCount(), @@ -375,8 +379,10 @@ evt.getWhen(), evt. getModifiers(), - (float)p.getX(), - (float)p.getY(), + (float)gnp.getX(), + (float)gnp.getY(), + (int)Math.floor(p.getX()), + (int)Math.floor(p.getY()), screenPos.x, screenPos.y, evt.getClickCount(), @@ -391,8 +397,10 @@ evt.getID(), evt.getWhen(), evt.getModifiers(), - (float)p.getX(), - (float)p.getY(), + (float)gnp.getX(), + (float)gnp.getY(), + (int)Math.floor(p.getX()), + (int)Math.floor(p.getY()), screenPos.x, screenPos.y, evt.getClickCount(), @@ -408,8 +416,10 @@ evt.getID(), evt.getWhen(), evt.getModifiers(), - (float)p.getX(), - (float)p.getY(), + (float)gnp.getX(), + (float)gnp.getY(), + (int)Math.floor(p.getX()), + (int)Math.floor(p.getY()), screenPos.x, screenPos.y, evt.getClickCount(), 1.7 +33 -1 xml-batik/sources/org/apache/batik/gvt/event/GraphicsNodeMouseEvent.java Index: GraphicsNodeMouseEvent.java =================================================================== RCS file: /home/cvs/xml-batik/sources/org/apache/batik/gvt/event/GraphicsNodeMouseEvent.java,v retrieving revision 1.6 retrieving revision 1.7 diff -u -r1.6 -r1.7 --- GraphicsNodeMouseEvent.java 12 Jun 2002 12:02:51 -0000 1.6 +++ GraphicsNodeMouseEvent.java 25 Mar 2003 00:31:22 -0000 1.7 @@ -83,6 +83,10 @@ */ float y; + int clientX; + + int clientY; + int screenX; int screenY; @@ -114,12 +118,15 @@ public GraphicsNodeMouseEvent(GraphicsNode source, int id, long when, int modifiers, float x, float y, + int clientX, int clientY, int screenX, int screenY, int clickCount, GraphicsNode relatedNode) { super(source, id, when, modifiers); this.x = x; this.y = y; + this.clientX = clientX; + this.clientY = clientY; this.screenX = screenX; this.screenY = screenY; this.clickCount = clickCount; @@ -158,6 +165,23 @@ /** * Returns the horizontal x position of the event relative to the + * source graphics node. + * @return x a float indicating horizontal position relative to the node + */ + public float getClientX() { + return clientX; + } + + /** + * Returns the vertical y position of the event relative to the source node. + * @return y a float indicating vertical position relative to the node + */ + public float getClientY() { + return clientY; + } + + /** + * Returns the horizontal x position of the event relative to the * screen. * @return x a float indicating horizontal position relative to the screen */ @@ -179,6 +203,14 @@ */ public Point getScreenPoint() { return new Point(screenX, screenY); + } + + /** + * Returns the (x, y) position of the event relative to the screen. + * @return a Point object containing the x and y coordinates + */ + public Point getClientPoint() { + return new Point(clientX, clientY); } /**
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]