diff --git a/org.eclipse.wb.core.java/src/org/eclipse/wb/internal/core/gef/policy/nonvisual/NonVisualLayoutEditPolicy.java b/org.eclipse.wb.core.java/src/org/eclipse/wb/internal/core/gef/policy/nonvisual/NonVisualLayoutEditPolicy.java
index 1bc895a3a..734af0c09 100644
--- a/org.eclipse.wb.core.java/src/org/eclipse/wb/internal/core/gef/policy/nonvisual/NonVisualLayoutEditPolicy.java
+++ b/org.eclipse.wb.core.java/src/org/eclipse/wb/internal/core/gef/policy/nonvisual/NonVisualLayoutEditPolicy.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011, 2025 Google, Inc. and others.
+ * Copyright (c) 2011, 2026 Google, Inc. and others.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
@@ -13,6 +13,7 @@
 package org.eclipse.wb.internal.core.gef.policy.nonvisual;
 
 import org.eclipse.wb.core.gef.command.EditCommand;
+import org.eclipse.wb.core.gef.policy.PolicyUtils;
 import org.eclipse.wb.core.model.JavaInfo;
 import org.eclipse.wb.gef.core.policies.ILayoutRequestValidator;
 import org.eclipse.wb.gef.core.requests.ChangeBoundsRequest;
@@ -162,7 +163,7 @@ protected void eraseLayoutTargetFeedback(Request request) {
 	////////////////////////////////////////////////////////////////////////////
 	private void showCreationFeedback(CreateRequest request) {
 		JavaInfo newInfo = (JavaInfo) request.getNewObject();
-		Point location = request.getLocation();
+		Point location = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		showFeedback(GefMessages.NonVisualLayoutEditPolicy_newFeedback, newInfo, location);
 	}
 
@@ -171,7 +172,7 @@ private void showPasteFeedback(PasteRequest request) {
 		try {
 			List<JavaInfoMemento> mementos = (List<JavaInfoMemento>) request.getMemento();
 			JavaInfo newInfo = mementos.get(0).create(m_rootInfo);
-			Point location = request.getLocation();
+			Point location = PolicyUtils.getAbsoluteLocation(getHost(), request);
 			showFeedback(GefMessages.NonVisualLayoutEditPolicy_copyFeedback, newInfo, location);
 		} catch (Throwable e) {
 			DesignerPlugin.log(e);
@@ -210,7 +211,7 @@ private void showMoveFeedback(ChangeBoundsRequest request) {
 				final JavaInfo info = part.getNonVisualInfo().getJavaInfo();
 				BeanFigure figure = new BeanFigure(info.getDescription().getIcon());
 				String text = ExecutionUtils.runObjectLog(() -> info.getVariableSupport().getTitle(), null);
-				figure.update(text, request.getLocation());
+				figure.update(text, PolicyUtils.getAbsoluteLocation(getHost(), request));
 				//
 				m_moveFeedbackFigures[i] = figure;
 				addFeedback(figure);
diff --git a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/requests/AbstractCreateRequest.java b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/requests/AbstractCreateRequest.java
index 43fb6bbf1..a293057ea 100644
--- a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/requests/AbstractCreateRequest.java
+++ b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/requests/AbstractCreateRequest.java
@@ -13,7 +13,6 @@
 package org.eclipse.wb.gef.core.requests;
 
 import org.eclipse.draw2d.geometry.Dimension;
-import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.gef.Request;
 import org.eclipse.gef.requests.DropRequest;
 import org.eclipse.gef.requests.LocationRequest;
@@ -24,7 +23,6 @@
  */
 public abstract class AbstractCreateRequest extends LocationRequest implements DropRequest {
 	private Dimension m_size;
-	private Point m_location;
 
 	////////////////////////////////////////////////////////////////////////////
 	//
@@ -38,40 +36,6 @@ public AbstractCreateRequest(Object type) {
 		super(type);
 	}
 
-	/**
-	 * @deprecated Use {@link #getRelativeLocation()} instead.
-	 */
-	@Override
-	@Deprecated
-	public Point getLocation() {
-		return super.getLocation();
-	}
-
-	/**
-	 * @deprecated Use {@link #setRelativeLocation(Point)} instead.
-	 */
-	@Override
-	@Deprecated
-	public void setLocation(Point p) {
-		super.setLocation(p);
-	}
-
-	/**
-	 * @return The current mouse location.
-	 */
-	public Point getRelativeLocation() {
-		return m_location;
-	}
-
-	/**
-	 * Sets the current location.
-	 *
-	 * @param p The current location.
-	 */
-	public void setRelativeLocation(Point location) {
-		m_location = location;
-	}
-
 	////////////////////////////////////////////////////////////////////////////
 	//
 	// Access
@@ -102,7 +66,6 @@ public void setSize(Dimension size) {
 	public void copyStateFrom(Request _source) {
 		if (_source instanceof AbstractCreateRequest source) {
 			setLocation(source.getLocation());
-			setRelativeLocation(source.getRelativeLocation());
 			setSize(source.getSize());
 		}
 	}
diff --git a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/requests/ChangeBoundsRequest.java b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/requests/ChangeBoundsRequest.java
index 27e2bae04..bc57a7dd1 100644
--- a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/requests/ChangeBoundsRequest.java
+++ b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/requests/ChangeBoundsRequest.java
@@ -27,7 +27,6 @@
  */
 public class ChangeBoundsRequest extends GroupRequest implements DropRequest {
 	private static final int SNAP_TO = 16;
-	private Point m_mouseAbsoluteLocation;
 	private Point m_mouseLocation;
 	private Point m_moveDelta = new Point();
 	private Dimension m_resizeDelta = new Dimension();
@@ -57,38 +56,18 @@ public ChangeBoundsRequest(Object type) {
 	// Access
 	//
 	////////////////////////////////////////////////////////////////////////////
-	/**
-	 * Returns the <b>absolute<b> location of the mouse pointer.
-	 *
-	 * @deprecated Use {@link #getRelativeLocation()} instead.
-	 */
-	@Override
-	@Deprecated
-	public Point getLocation() {
-		return m_mouseAbsoluteLocation;
-	}
-
-	/**
-	 * Sets the <b>absolute<b> location of the mouse pointer.
-	 *
-	 * @deprecated Use {@link #setRelativeLocation(Point)} instead.
-	 */
-	@Deprecated
-	public void setLocation(Point absoluteLocation) {
-		m_mouseAbsoluteLocation = absoluteLocation;
-	}
-
 	/**
 	 * Returns the location of the mouse pointer.
 	 */
-	public Point getRelativeLocation() {
+	@Override
+	public final Point getLocation() {
 		return m_mouseLocation;
 	}
 
 	/**
 	 * Sets the location of the mouse pointer.
 	 */
-	public void setRelativeLocation(Point location) {
+	public void setLocation(Point location) {
 		m_mouseLocation = location;
 	}
 
diff --git a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/tools/AbstractCreationTool.java b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/tools/AbstractCreationTool.java
index a8dab38e1..d6effb3f6 100644
--- a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/tools/AbstractCreationTool.java
+++ b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/tools/AbstractCreationTool.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011, 2025 Google, Inc. and others.
+ * Copyright (c) 2011, 2026 Google, Inc. and others.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
@@ -15,8 +15,6 @@
 import org.eclipse.wb.gef.core.requests.AbstractCreateRequest;
 import org.eclipse.wb.internal.gef.core.SharedCursors;
 
-import org.eclipse.draw2d.geometry.Point;
-import org.eclipse.draw2d.geometry.Rectangle;
 import org.eclipse.gef.EditPartViewer;
 import org.eclipse.gef.Request;
 import org.eclipse.swt.SWT;
@@ -43,13 +41,11 @@ public AbstractCreationTool() {
 	//
 	////////////////////////////////////////////////////////////////////////////
 	@Override
-	@SuppressWarnings("deprecation")
 	protected boolean handleButtonDown(int button) {
 		if (button == 1) {
 			if (m_state == STATE_INITIAL) {
 				m_state = STATE_DRAG;
-				((AbstractCreateRequest) getTargetRequest()).setRelativeLocation(getLocation());
-				((AbstractCreateRequest) getTargetRequest()).setLocation(getAbsoluteLocation());
+				((AbstractCreateRequest) getTargetRequest()).setLocation(getLocation());
 				lockTargetEditPart(getTargetEditPart());
 			}
 		} else {
@@ -115,20 +111,15 @@ protected boolean handleDragInProgress() {
 	 * Sets the location (and size if the user is performing size-on-drop) of the request.
 	 */
 	@Override
-	@SuppressWarnings("deprecation")
 	protected void updateTargetRequest() {
 		super.updateTargetRequest();
 		AbstractCreateRequest request = (AbstractCreateRequest) getTargetRequest();
 		if (m_state == STATE_DRAG_IN_PROGRESS) {
-			Point start = getAbsoluteStartLocation();
-			Rectangle bounds = new Rectangle(start, getDragMoveDelta());
-			request.setRelativeLocation(getStartLocation());
-			request.setLocation(bounds.getLocation());
-			request.setSize(bounds.getSize());
+			request.setLocation(getStartLocation());
+			request.setSize(getDragMoveDelta());
 		} else {
 			request.setSize(null);
-			request.setRelativeLocation(getLocation());
-			request.setLocation(getAbsoluteLocation());
+			request.setLocation(getLocation());
 		}
 	}
 
diff --git a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/tools/DragEditPartTracker.java b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/tools/DragEditPartTracker.java
index 00ed47a13..e38b0483c 100644
--- a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/tools/DragEditPartTracker.java
+++ b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/core/tools/DragEditPartTracker.java
@@ -204,14 +204,12 @@ protected Request createTargetRequest() {
 	 * location and type.
 	 */
 	@Override
-	@SuppressWarnings("deprecation")
 	protected void updateTargetRequest() {
 		super.updateTargetRequest();
 		ChangeBoundsRequest request = (ChangeBoundsRequest) getTargetRequest();
 		request.setEditParts(getOperationSet());
 		request.setMoveDelta(new Point(getDragMoveDelta()));
-		request.setLocation(getAbsoluteLocation());
-		request.setRelativeLocation(getLocation());
+		request.setLocation(getLocation());
 	}
 
 	@Override
diff --git a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/graphical/tools/ResizeTracker.java b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/graphical/tools/ResizeTracker.java
index 74b714f59..c234a6024 100644
--- a/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/graphical/tools/ResizeTracker.java
+++ b/org.eclipse.wb.core/src-gef/org/eclipse/wb/gef/graphical/tools/ResizeTracker.java
@@ -261,8 +261,7 @@ private void updateRequest() {
 		// set request data
 		getRequest().setMoveDelta(corner);
 		getRequest().setSizeDelta(resize);
-		getRequest().setLocation(getAbsoluteLocation());
-		getRequest().setRelativeLocation(getLocation());
+		getRequest().setLocation(getLocation());
 	}
 
 	/**
diff --git a/org.eclipse.wb.core/src/org/eclipse/wb/core/gef/policy/PolicyUtils.java b/org.eclipse.wb.core/src/org/eclipse/wb/core/gef/policy/PolicyUtils.java
index e6cc7b2b4..8e0dca7bd 100644
--- a/org.eclipse.wb.core/src/org/eclipse/wb/core/gef/policy/PolicyUtils.java
+++ b/org.eclipse.wb.core/src/org/eclipse/wb/core/gef/policy/PolicyUtils.java
@@ -37,6 +37,7 @@
 import org.eclipse.gef.LayerConstants;
 import org.eclipse.gef.editparts.LayerManager;
 import org.eclipse.gef.editpolicies.GraphicalEditPolicy;
+import org.eclipse.gef.requests.DropRequest;
 
 import java.lang.reflect.Method;
 import java.util.Objects;
@@ -171,6 +172,17 @@ public static Rectangle getAbsoluteBounds(GraphicalEditPart editPart) {
 		return bounds;
 	}
 
+	/**
+	 * @return absolute mouse coordinates of given {@link DropRequest}.
+	 * @since 1.24
+	 */
+	public static Point getAbsoluteLocation(GraphicalEditPart editPart, DropRequest request) {
+		GraphicalEditPart contents = (GraphicalEditPart) editPart.getViewer().getContents();
+		Point location = request.getLocation().getCopy();
+		contents.getFigure().translateToRelative(location);
+		return location;
+	}
+
 	////////////////////////////////////////////////////////////////////////////
 	//
 	// Geometry utilities
diff --git a/org.eclipse.wb.core/src/org/eclipse/wb/core/gef/policy/layout/generic/AbstractColumnSelectionEditPolicy.java b/org.eclipse.wb.core/src/org/eclipse/wb/core/gef/policy/layout/generic/AbstractColumnSelectionEditPolicy.java
index 72e36d929..4aaad3acd 100644
--- a/org.eclipse.wb.core/src/org/eclipse/wb/core/gef/policy/layout/generic/AbstractColumnSelectionEditPolicy.java
+++ b/org.eclipse.wb.core/src/org/eclipse/wb/core/gef/policy/layout/generic/AbstractColumnSelectionEditPolicy.java
@@ -14,6 +14,7 @@
 
 import org.eclipse.wb.core.gef.command.EditCommand;
 import org.eclipse.wb.core.gef.figure.TextFeedback;
+import org.eclipse.wb.core.gef.policy.PolicyUtils;
 import org.eclipse.wb.core.model.IObjectInfo;
 import org.eclipse.wb.draw2d.FigureUtils;
 import org.eclipse.wb.draw2d.RectangleFigure;
@@ -164,7 +165,7 @@ private void showResizeFeedback(ChangeBoundsRequest request) {
 		m_resizeFeedback.setBounds(bounds);
 		// update text feedback
 		m_textFeedback.setText(Integer.toString(bounds.width - 2));
-		m_textFeedback.setLocation(request.getLocation().getTranslated(10, 10));
+		m_textFeedback.setLocation(PolicyUtils.getAbsoluteLocation(getHost(), request).translate(10, 10));
 	}
 
 	private void eraseResizeFeedback(ChangeBoundsRequest request) {
diff --git a/org.eclipse.wb.core/src/org/eclipse/wb/internal/core/gef/policy/layout/absolute/AbsoluteBasedLayoutEditPolicy.java b/org.eclipse.wb.core/src/org/eclipse/wb/internal/core/gef/policy/layout/absolute/AbsoluteBasedLayoutEditPolicy.java
index 6099dc9ba..8e25c7a15 100644
--- a/org.eclipse.wb.core/src/org/eclipse/wb/internal/core/gef/policy/layout/absolute/AbsoluteBasedLayoutEditPolicy.java
+++ b/org.eclipse.wb.core/src/org/eclipse/wb/internal/core/gef/policy/layout/absolute/AbsoluteBasedLayoutEditPolicy.java
@@ -436,7 +436,7 @@ private void showMoveFeedback(ChangeBoundsRequest request) {
 		}
 		addFeedback(m_moveFeedback);
 		// Case 42313
-		Point moveLocation = isKeyboardMoving() ? moveDelta : request.getLocation();
+		Point moveLocation = isKeyboardMoving() ? moveDelta : PolicyUtils.getAbsoluteLocation(getHost(), request);
 		// do drag
 		placementsSupport.drag(
 				moveLocation,
@@ -535,7 +535,7 @@ public void showResizeFeedback(ChangeBoundsRequest request) {
 		// do drag
 		Dimension sizeDelta = request.getSizeDelta();
 		Point moveLocation =
-				isKeyboardMoving ? new Point(sizeDelta.width, sizeDelta.height) : request.getLocation();
+				isKeyboardMoving ? new Point(sizeDelta.width, sizeDelta.height) : PolicyUtils.getAbsoluteLocation(getHost(), request);
 		// do drag
 		getPlacementsSupport().drag(
 				moveLocation,
@@ -565,7 +565,7 @@ public void showResizeFeedback(ChangeBoundsRequest request) {
 		// update text feedback
 		if (m_textFeedback != null) {
 			m_textFeedback.setText(getSizeHintString(getHost(), widgetBounds.width, widgetBounds.height));
-			m_textFeedback.setLocation(request.getLocation().getTranslated(10, 10));
+			m_textFeedback.setLocation(PolicyUtils.getAbsoluteLocation(getHost(), request).translate(10, 10));
 		}
 	}
 
@@ -614,7 +614,7 @@ private void showCreationFeedback(CreateRequest request) {
 			removeFeedback(m_createFeedback);
 			m_createFeedback = null;
 		}
-		Point location = request.getLocation().getCopy();
+		Point location = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		translateAbsoluteToModel(location);
 		IAbstractComponentInfo newWidget = (IAbstractComponentInfo) request.getNewObject();
 		Image image = newWidget.getImage();
@@ -723,7 +723,7 @@ private void showPasteFeedback(final PasteRequest request) {
 				m_createFeedback = null;
 			}
 			//
-			Point location = request.getLocation().getCopy();
+			Point location = PolicyUtils.getAbsoluteLocation(getHost(), request);
 			translateAbsoluteToModel(location);
 			//
 			Rectangle widgetBounds;
@@ -783,7 +783,7 @@ private void showPasteFeedback(final PasteRequest request) {
 				}
 			}
 			placementsSupport.drag(
-					request.getLocation(),
+					PolicyUtils.getAbsoluteLocation(getHost(), request),
 					List.copyOf(pastedModels),
 					widgetBounds,
 					List.of(relativeBounds));
diff --git a/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/gef/GroupLayoutEditPolicy2.java b/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/gef/GroupLayoutEditPolicy2.java
index 8a1d9d616..f1d94775a 100644
--- a/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/gef/GroupLayoutEditPolicy2.java
+++ b/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/gef/GroupLayoutEditPolicy2.java
@@ -166,7 +166,7 @@ private void showCreationFeedback(CreateRequest request) {
 		}
 		m_feedbacksDrawer.removeFeedbacks();
 		// prepare
-		Point location = request.getLocation().getCopy();
+		Point location = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		translateAbsoluteToModel(location);
 		AbstractComponentInfo newWidget = (AbstractComponentInfo) request.getNewObject();
 		Image image = newWidget.getImage();
@@ -247,12 +247,12 @@ private void showAddFeedback(ChangeBoundsRequest request) {
 			layoutComponents[j++] = m_layout.createLayoutComponent(model);
 		}
 		// the position of the mouse inside the dragging rectangle
-		Point hotSpot = request.getLocation().getCopy();
+		Point hotSpot = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		PolicyUtils.translateAbsoluteToModel((GraphicalEditPart) firstEditPart.getParent(), hotSpot);
 		hotSpot.performTranslate(request.getMoveDelta().getNegated());
 		hotSpot.performTranslate(-offsetX, -offsetY);
 		// current mouse position in model coordinates
-		Point topLeft = request.getLocation().getCopy();
+		Point topLeft = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		translateAbsoluteToModel(topLeft);
 		{
 			// start re-parenting
@@ -305,7 +305,7 @@ private void showMoveFeedback(ChangeBoundsRequest request) {
 			return;
 		}
 		// prepare
-		Point location = request.getLocation().getCopy();
+		Point location = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		m_feedbacksDrawer.removeFeedbacks();
 		LayoutDesigner layoutDesigner = m_layout.getLayoutDesigner();
 		// start dragging
@@ -383,7 +383,7 @@ private void showPasteFeedback(PasteRequest request) {
 		List<AbstractComponentInfo> pastedModels = new ArrayList<>(mementos.size());
 		// prepare
 		request.setObjects(pastedModels);
-		Point location = request.getLocation().getCopy();
+		Point location = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		LayoutDesigner layoutDesigner = m_layout.getLayoutDesigner();
 		translateAbsoluteToModel(location);
 		try {
diff --git a/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/gef/GroupSelectionEditPolicy2.java b/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/gef/GroupSelectionEditPolicy2.java
index d8e1a5e54..be7993000 100644
--- a/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/gef/GroupSelectionEditPolicy2.java
+++ b/org.eclipse.wb.layout.group/src/org/eclipse/wb/internal/layout/group/gef/GroupSelectionEditPolicy2.java
@@ -208,7 +208,7 @@ private void showResizeFeedback(ChangeBoundsRequest request) {
 		hideAlignmentFigures();
 		// prepare
 		int direction = request.getResizeDirection();
-		Point location = request.getLocation().getCopy();
+		Point location = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		PolicyUtils.translateAbsoluteToModel(this, location);
 		LayoutDesigner layoutDesigner = m_layout.getLayoutDesigner();
 		AbstractComponentInfo hostModel = (AbstractComponentInfo) getHostModel();
diff --git a/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/forms/layout/ColumnLayoutSelectionEditPolicy.java b/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/forms/layout/ColumnLayoutSelectionEditPolicy.java
index fe09541db..4fed9a9f6 100644
--- a/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/forms/layout/ColumnLayoutSelectionEditPolicy.java
+++ b/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/forms/layout/ColumnLayoutSelectionEditPolicy.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2011, 2025 Google, Inc. and others.
+ * Copyright (c) 2011, 2026 Google, Inc. and others.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
@@ -162,7 +162,7 @@ private void showResizeFeedback(ChangeBoundsRequest request) {
 		m_resizeFeedback.setBounds(bounds);
 		// update text feedback
 		m_textFeedback.setText(Integer.toString(bounds.width) + " x " + Integer.toString(bounds.height));
-		m_textFeedback.setLocation(request.getLocation().getTranslated(10, 10));
+		m_textFeedback.setLocation(PolicyUtils.getAbsoluteLocation(getHost(), request).translate(10, 10));
 	}
 
 	private void eraseResizeFeedback(ChangeBoundsRequest request) {
diff --git a/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/widgets/SashFormSelectionEditPolicy.java b/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/widgets/SashFormSelectionEditPolicy.java
index 41ded6e62..80965f906 100644
--- a/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/widgets/SashFormSelectionEditPolicy.java
+++ b/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/widgets/SashFormSelectionEditPolicy.java
@@ -14,6 +14,7 @@
 
 import org.eclipse.wb.core.gef.command.EditCommand;
 import org.eclipse.wb.core.gef.figure.TextFeedback;
+import org.eclipse.wb.core.gef.policy.PolicyUtils;
 import org.eclipse.wb.draw2d.FigureUtils;
 import org.eclipse.wb.draw2d.RectangleFigure;
 import org.eclipse.wb.gef.core.requests.ChangeBoundsRequest;
@@ -175,7 +176,7 @@ private void showResizeFeedback(ChangeBoundsRequest request) {
 		// update text feedback
 		int size = m_composite.isHorizontal() ? bounds.width : bounds.height;
 		m_textFeedback.setText(Integer.toString(size - 2));
-		m_textFeedback.setLocation(request.getLocation().getTranslated(10, 10));
+		m_textFeedback.setLocation(PolicyUtils.getAbsoluteLocation(getHost(), request).translate(10, 10));
 	}
 
 	/**
diff --git a/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/widgets/TreeTreeColumnSelectionEditPolicy.java b/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/widgets/TreeTreeColumnSelectionEditPolicy.java
index c8cf85842..38f6c96ab 100644
--- a/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/widgets/TreeTreeColumnSelectionEditPolicy.java
+++ b/org.eclipse.wb.rcp/src/org/eclipse/wb/internal/rcp/gef/policy/widgets/TreeTreeColumnSelectionEditPolicy.java
@@ -14,6 +14,7 @@
 
 import org.eclipse.wb.core.gef.command.EditCommand;
 import org.eclipse.wb.core.gef.figure.TextFeedback;
+import org.eclipse.wb.core.gef.policy.PolicyUtils;
 import org.eclipse.wb.draw2d.FigureUtils;
 import org.eclipse.wb.draw2d.RectangleFigure;
 import org.eclipse.wb.gef.core.requests.ChangeBoundsRequest;
@@ -154,7 +155,7 @@ private void showResizeFeedback(ChangeBoundsRequest request) {
 		m_resizeFeedback.setBounds(bounds);
 		// update text feedback
 		m_textFeedback.setText(Integer.toString(bounds.width - 2));
-		m_textFeedback.setLocation(request.getLocation().getTranslated(10, 10));
+		m_textFeedback.setLocation(PolicyUtils.getAbsoluteLocation(getHost(), request).translate(10, 10));
 	}
 
 	private void eraseResizeFeedback(ChangeBoundsRequest request) {
diff --git a/org.eclipse.wb.swing.FormLayout/src/org/eclipse/wb/internal/swing/FormLayout/gef/header/selection/DimensionSelectionEditPolicy.java b/org.eclipse.wb.swing.FormLayout/src/org/eclipse/wb/internal/swing/FormLayout/gef/header/selection/DimensionSelectionEditPolicy.java
index 90270b849..b4727fa89 100644
--- a/org.eclipse.wb.swing.FormLayout/src/org/eclipse/wb/internal/swing/FormLayout/gef/header/selection/DimensionSelectionEditPolicy.java
+++ b/org.eclipse.wb.swing.FormLayout/src/org/eclipse/wb/internal/swing/FormLayout/gef/header/selection/DimensionSelectionEditPolicy.java
@@ -192,7 +192,7 @@ public void showSourceFeedback(Request request) {
 			}
 			// set feedback bounds
 			{
-				Point mouseLocation = changeBoundsRequest.getRelativeLocation().getCopy();
+				Point mouseLocation = changeBoundsRequest.getLocation().getCopy();
 				Point feedbackLocation = getTextFeedbackLocation(mouseLocation);
 				feedbackLayer.translateToRelative(feedbackLocation);
 				m_feedback.setLocation(feedbackLocation);
diff --git a/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/gef/header/selection/DimensionSelectionEditPolicy.java b/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/gef/header/selection/DimensionSelectionEditPolicy.java
index 318f64a47..8d64d1cea 100644
--- a/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/gef/header/selection/DimensionSelectionEditPolicy.java
+++ b/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/gef/header/selection/DimensionSelectionEditPolicy.java
@@ -199,7 +199,7 @@ public void showSourceFeedback(Request request) {
 			}
 			// set feedback bounds
 			{
-				Point mouseLocation = changeBoundsRequest.getRelativeLocation().getCopy();
+				Point mouseLocation = changeBoundsRequest.getLocation().getCopy();
 				Point feedbackLocation = getTextFeedbackLocation(mouseLocation);
 				feedbackLayer.translateToRelative(feedbackLocation);
 				m_feedback.setLocation(feedbackLocation);
diff --git a/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/gef/policy/component/box/StrutSelectionEditPolicy.java b/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/gef/policy/component/box/StrutSelectionEditPolicy.java
index 5355574a7..63012f581 100644
--- a/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/gef/policy/component/box/StrutSelectionEditPolicy.java
+++ b/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/gef/policy/component/box/StrutSelectionEditPolicy.java
@@ -14,6 +14,7 @@
 
 import org.eclipse.wb.core.gef.command.EditCommand;
 import org.eclipse.wb.core.gef.figure.TextFeedback;
+import org.eclipse.wb.core.gef.policy.PolicyUtils;
 import org.eclipse.wb.draw2d.FigureUtils;
 import org.eclipse.wb.draw2d.RectangleFigure;
 import org.eclipse.wb.gef.core.requests.ChangeBoundsRequest;
@@ -159,7 +160,7 @@ private void showResizeFeedback(ChangeBoundsRequest request) {
 		{
 			String tooltip = getTooltip(bounds.width - 2, bounds.height - 2);
 			m_textFeedback.setText(tooltip);
-			m_textFeedback.setLocation(request.getLocation().getTranslated(10, 10));
+			m_textFeedback.setLocation(PolicyUtils.getAbsoluteLocation(getHost(), request).translate(10, 10));
 		}
 	}
 
diff --git a/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/gef/policy/layout/gbl/header/selection/DimensionSelectionEditPolicy.java b/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/gef/policy/layout/gbl/header/selection/DimensionSelectionEditPolicy.java
index 3251a4ef6..ab026cd82 100644
--- a/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/gef/policy/layout/gbl/header/selection/DimensionSelectionEditPolicy.java
+++ b/org.eclipse.wb.swing/src/org/eclipse/wb/internal/swing/gef/policy/layout/gbl/header/selection/DimensionSelectionEditPolicy.java
@@ -14,6 +14,7 @@
 
 import org.eclipse.wb.core.gef.figure.TextFeedback;
 import org.eclipse.wb.core.gef.header.AbstractHeaderSelectionEditPolicy;
+import org.eclipse.wb.core.gef.policy.PolicyUtils;
 import org.eclipse.wb.core.gef.policy.layout.grid.IGridInfo;
 import org.eclipse.wb.draw2d.Figure;
 import org.eclipse.wb.draw2d.FigureUtils;
@@ -172,7 +173,7 @@ public void showSourceFeedback(Request request) {
 			}
 			// set feedback bounds
 			{
-				Point mouseLocation = changeBoundsRequest.getLocation().getCopy();
+				Point mouseLocation = PolicyUtils.getAbsoluteLocation(getHost(), changeBoundsRequest);
 				Point feedbackLocation = getTextFeedbackLocation(mouseLocation);
 				FigureUtils.translateAbsoluteToFigure(feedbackLayer, feedbackLocation);
 				m_feedback.setLocation(feedbackLocation);
diff --git a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/TableTableColumnSelectionEditPolicy.java b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/TableTableColumnSelectionEditPolicy.java
index 4ebbacee9..09732e2e6 100644
--- a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/TableTableColumnSelectionEditPolicy.java
+++ b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/TableTableColumnSelectionEditPolicy.java
@@ -14,6 +14,7 @@
 
 import org.eclipse.wb.core.gef.command.EditCommand;
 import org.eclipse.wb.core.gef.figure.TextFeedback;
+import org.eclipse.wb.core.gef.policy.PolicyUtils;
 import org.eclipse.wb.draw2d.FigureUtils;
 import org.eclipse.wb.draw2d.RectangleFigure;
 import org.eclipse.wb.gef.core.requests.ChangeBoundsRequest;
@@ -158,7 +159,7 @@ private void showResizeFeedback(ChangeBoundsRequest request) {
 		m_resizeFeedback.setBounds(bounds);
 		// update text feedback
 		m_textFeedback.setText(Integer.toString(bounds.width - 2));
-		m_textFeedback.setLocation(request.getLocation().getTranslated(10, 10));
+		m_textFeedback.setLocation(PolicyUtils.getAbsoluteLocation(getHost(), request).translate(10, 10));
 	}
 
 	private void eraseResizeFeedback(ChangeBoundsRequest request) {
diff --git a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/RowLayoutSelectionEditPolicy.java b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/RowLayoutSelectionEditPolicy.java
index 468b01066..75d5ca6f6 100644
--- a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/RowLayoutSelectionEditPolicy.java
+++ b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/RowLayoutSelectionEditPolicy.java
@@ -164,7 +164,7 @@ private void showResizeFeedback(ChangeBoundsRequest request) {
 		m_resizeFeedback.setBounds(bounds);
 		// update text feedback
 		m_textFeedback.setText(bounds.width + " x " + bounds.height);
-		m_textFeedback.setLocation(request.getLocation().getTranslated(10, 10));
+		m_textFeedback.setLocation(PolicyUtils.getAbsoluteLocation(getHost(), request).translate(10, 10));
 	}
 
 	private void eraseResizeFeedback(ChangeBoundsRequest request) {
diff --git a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormHeaderLayoutEditPolicy.java b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormHeaderLayoutEditPolicy.java
index 32872db56..28ef95e3b 100644
--- a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormHeaderLayoutEditPolicy.java
+++ b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormHeaderLayoutEditPolicy.java
@@ -14,6 +14,7 @@
 
 import org.eclipse.wb.core.gef.figure.TextFeedback;
 import org.eclipse.wb.core.gef.header.AbstractHeaderLayoutEditPolicy;
+import org.eclipse.wb.core.gef.policy.PolicyUtils;
 import org.eclipse.wb.draw2d.FigureUtils;
 import org.eclipse.wb.draw2d.Layer;
 import org.eclipse.wb.gef.core.IEditPartViewer;
@@ -146,7 +147,7 @@ protected void showLayoutTargetFeedback(Request request) {
 					layer.add(feedback);
 				}
 				int figureSize = t.t(getHostFigure().getSize()).height;
-				Point location = t.t(((ChangeBoundsRequest) request).getLocation().getCopy());
+				Point location = t.t(PolicyUtils.getAbsoluteLocation(getHost(), (ChangeBoundsRequest) request));
 				Point position = t.t(new Point(location.x - figureSize / 2, 0));
 				feedback.setLocation(position);
 				feedback.setSize(figureSize, figureSize);
@@ -200,7 +201,7 @@ public void execute() {
 	//
 	////////////////////////////////////////////////////////////////////////////
 	private int calcPercent(ChangeBoundsRequest request) {
-		Point location = request.getLocation().getCopy();
+		Point location = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		return calcPercent(location);
 	}
 
diff --git a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormLayoutEditPolicy2.java b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormLayoutEditPolicy2.java
index 2f445a33a..6bce858e9 100644
--- a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormLayoutEditPolicy2.java
+++ b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormLayoutEditPolicy2.java
@@ -310,7 +310,7 @@ private void showMoveFeedback(ChangeBoundsRequest request) {
 		}
 		addFeedback(m_moveFeedback);
 		// Case 42313
-		Point moveLocation = isKeyboardMoving() ? moveDelta : request.getLocation();
+		Point moveLocation = isKeyboardMoving() ? moveDelta : PolicyUtils.getAbsoluteLocation(getHost(), request);
 		// do drag
 		m_snapPoints.processBounds(moveLocation, modelList, widgetBounds, 0);
 		// update move feedback: translate bounds back into feedback coordinates, apply bounds for feedback figure
diff --git a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormLayoutEditPolicyClassic.java b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormLayoutEditPolicyClassic.java
index ee397d27f..c7ab68e45 100644
--- a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormLayoutEditPolicyClassic.java
+++ b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormLayoutEditPolicyClassic.java
@@ -355,7 +355,7 @@ private void showCreateFeedback(CreateRequest request, C newChild) throws Except
 		TextFeedback locationFeedbackX = getTextFeedback(xTextFeedbacks, host, true);
 		TextFeedback locationFeedbackY = getTextFeedback(yTextFeedbacks, host, false);
 		// location and parent dimensions
-		Point loc = request.getLocation().getCopy();
+		Point loc = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		ICompositeInfo composite = layout.getComposite();
 		Dimension parentSize = composite.getClientArea().getSize();
 		translateAbsoluteToModel(loc);
@@ -483,7 +483,7 @@ private void showPasteFeedback(PasteRequest request) throws Exception {
 		TextFeedback locationFeedbackX = getTextFeedback(xTextFeedbacks, host, true);
 		TextFeedback locationFeedbackY = getTextFeedback(yTextFeedbacks, host, false);
 		//
-		Point loc = request.getLocation().getCopy();
+		Point loc = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		translateAbsoluteToModel(loc);
 		//
 		IFigure moveFeedback = moveFeedbacks.get(getHost());
diff --git a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormSelectionEditPolicyClassic.java b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormSelectionEditPolicyClassic.java
index e29a9e24d..6c9c065c3 100644
--- a/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormSelectionEditPolicyClassic.java
+++ b/org.eclipse.wb.swt/src/org/eclipse/wb/internal/swt/gef/policy/layout/form/FormSelectionEditPolicyClassic.java
@@ -218,7 +218,7 @@ private void showResizeFeedback(ChangeBoundsRequest request) throws Exception {
 		Rectangle bounds = getControlModelBounds(control);
 		bounds.performTranslate(request.getMoveDelta());
 		bounds.resize(request.getSizeDelta());
-		Point requestLocation = request.getLocation();
+		Point requestLocation = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		Point location =
 				requestLocation == null
 				? getControlModelBounds(control).getLocation()
@@ -622,7 +622,7 @@ protected Command getResizeCommand(ChangeBoundsRequest request) throws Exception
 		Rectangle bounds = getControlModelBounds(control);
 		bounds.performTranslate(request.getMoveDelta());
 		bounds.resize(request.getSizeDelta());
-		Point requestLocation = request.getLocation();
+		Point requestLocation = PolicyUtils.getAbsoluteLocation(getHost(), request);
 		Point location =
 				requestLocation == null
 				? getControlModelBounds(control).getLocation()
diff --git a/org.eclipse.wb.tests/src/org/eclipse/wb/tests/utils/AbsoluteCreationTool.java b/org.eclipse.wb.tests/src/org/eclipse/wb/tests/utils/AbsoluteCreationTool.java
index 4b13bca20..ed2b8d246 100644
--- a/org.eclipse.wb.tests/src/org/eclipse/wb/tests/utils/AbsoluteCreationTool.java
+++ b/org.eclipse.wb.tests/src/org/eclipse/wb/tests/utils/AbsoluteCreationTool.java
@@ -1,5 +1,5 @@
 /*******************************************************************************
- * Copyright (c) 2025 Patrick Ziegler and others.
+ * Copyright (c) 2025, 2026 Patrick Ziegler and others.
  *
  * This program and the accompanying materials are made available under the
  * terms of the Eclipse Public License 2.0 which is available at
@@ -36,11 +36,25 @@ public AbsoluteCreationTool(ICreationFactory factory) {
 
 	@Override
 	protected void updateTargetUnderMouse() {
+		whileScrolled(super::updateTargetUnderMouse);
+	}
+
+	@Override
+	protected void showTargetFeedback() {
+		whileScrolled(super::showTargetFeedback);
+	}
+
+	@Override
+	protected void eraseTargetFeedback() {
+		whileScrolled(super::eraseTargetFeedback);
+	}
+
+	private void whileScrolled(Runnable r) {
 		Point absoluteLocation = getLocation();
 		try (AutoScroller scroller = new AutoScroller(getCurrentViewer(), absoluteLocation.x, absoluteLocation.y)) {
 			Point location = scroller.getLocation();
 			getCurrentInput().setMouseLocation(location.x, location.y);
-			super.updateTargetUnderMouse();
+			r.run();
 		} finally {
 			getCurrentInput().setMouseLocation(absoluteLocation.x, absoluteLocation.y);
 		}
