@Override public boolean processMouseDown(MouseDownEvent event) { JavaScriptObject target = event.getNativeEvent().getEventTarget(); m = g.getScreenCTM().inverse(); delta = getCoordinates(event, m); float x = posHandle.getX().getBaseVal().getValue(); float y = posHandle.getY().getBaseVal().getValue(); float width = posHandle.getWidth().getBaseVal().getValue(); float height = posHandle.getHeight().getBaseVal().getValue(); OMSVGPoint p = svg.createSVGPoint(); if (target == posHandle.getElement()) { mode = Mode.POS; p.setX(x); p.setY(y); } else if (target == topLeftHandle.getElement()) { p.setX(x); p.setY(y); mode = Mode.TOP_LEFT; } else if (target == bottomRightHandle.getElement()) { p.setX(x + width); p.setY(y + height); mode = Mode.BOTTOM_RIGHT; } if (mode.consumeEvent()) { delta.substract(p); event.preventDefault(); event.stopPropagation(); } return true; }