From a646ad81ce7a7dd4d6758ad1d5b31e9825768b09 Mon Sep 17 00:00:00 2001 From: mwienand Date: Fri, 19 Dec 2014 18:20:26 +0100 Subject: [PATCH] [449870] Zoom relative to the mouse pointer location. --- .../gef4/mvc/fx/policies/FXZoomOnScrollPolicy.java | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/org.eclipse.gef4.mvc.fx/src/org/eclipse/gef4/mvc/fx/policies/FXZoomOnScrollPolicy.java b/org.eclipse.gef4.mvc.fx/src/org/eclipse/gef4/mvc/fx/policies/FXZoomOnScrollPolicy.java index 76903d95cb..3dfbf2a259 100644 --- a/org.eclipse.gef4.mvc.fx/src/org/eclipse/gef4/mvc/fx/policies/FXZoomOnScrollPolicy.java +++ b/org.eclipse.gef4.mvc.fx/src/org/eclipse/gef4/mvc/fx/policies/FXZoomOnScrollPolicy.java @@ -35,18 +35,16 @@ public void scroll(ScrollEvent event) { public void zoomRelative(double relativeZoom, double sceneX, double sceneY) { ViewportModel viewportModel = getHost().getRoot().getViewer() .getAdapter(ViewportModel.class); - FXRootPart root = (FXRootPart) getHost().getRoot(); - Point2D contentLayerPivot = root.getContentLayer().sceneToLocal(sceneX, - sceneY); - // TODO: pivot + Point2D contentGroupPivot = ((FXRootPart) getHost().getRoot()) + .getScrollPane().getContentGroup().sceneToLocal(sceneX, sceneY); viewportModel.setContentsTransform(viewportModel.getContentsTransform() .concatenate( new AffineTransform() - .translate(-contentLayerPivot.getX(), - -contentLayerPivot.getY()) + .translate(contentGroupPivot.getX(), + contentGroupPivot.getY()) .scale(relativeZoom, relativeZoom) - .translate(contentLayerPivot.getX(), - contentLayerPivot.getY()))); + .translate(-contentGroupPivot.getX(), + -contentGroupPivot.getY()))); } }