diff --git a/org.eclipse.wb.swing.FormLayout/META-INF/MANIFEST.MF b/org.eclipse.wb.swing.FormLayout/META-INF/MANIFEST.MF
index 378d49e6f..aaba4a399 100644
--- a/org.eclipse.wb.swing.FormLayout/META-INF/MANIFEST.MF
+++ b/org.eclipse.wb.swing.FormLayout/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wb.swing.FormLayout;singleton:=true
-Bundle-Version: 1.13.0.qualifier
+Bundle-Version: 1.13.100.qualifier
 Bundle-ClassPath: .
 Bundle-Activator: org.eclipse.wb.internal.swing.FormLayout.Activator
 Bundle-Vendor: %providerName
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 d6c1cea09..48de8341d 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
@@ -185,9 +185,9 @@ public void showSourceFeedback(Request request) {
 			}
 			// set feedback bounds
 			{
-				Point mouseLocation = changeBoundsRequest.getLocation().getCopy();
+				Point mouseLocation = changeBoundsRequest.getRelativeLocation().getCopy();
 				Point feedbackLocation = getTextFeedbackLocation(mouseLocation);
-				FigureUtils.translateAbsoluteToFigure(feedbackLayer, feedbackLocation);
+				feedbackLayer.translateToRelative(feedbackLocation);
 				m_feedback.setLocation(feedbackLocation);
 			}
 			// set text
diff --git a/org.eclipse.wb.swing.FormLayout/src/org/eclipse/wb/internal/swing/FormLayout/gef/header/selection/ResizeHintFigure.java b/org.eclipse.wb.swing.FormLayout/src/org/eclipse/wb/internal/swing/FormLayout/gef/header/selection/ResizeHintFigure.java
index fcde0d8da..ff96892b1 100644
--- a/org.eclipse.wb.swing.FormLayout/src/org/eclipse/wb/internal/swing/FormLayout/gef/header/selection/ResizeHintFigure.java
+++ b/org.eclipse.wb.swing.FormLayout/src/org/eclipse/wb/internal/swing/FormLayout/gef/header/selection/ResizeHintFigure.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
@@ -12,18 +12,18 @@
  *******************************************************************************/
 package org.eclipse.wb.internal.swing.FormLayout.gef.header.selection;
 
-import org.eclipse.wb.draw2d.Figure;
-import org.eclipse.wb.draw2d.FigureUtils;
-import org.eclipse.wb.draw2d.border.CompoundBorder;
-import org.eclipse.wb.draw2d.border.LineBorder;
-import org.eclipse.wb.draw2d.border.MarginBorder;
 import org.eclipse.wb.internal.core.utils.ui.DrawUtils;
 import org.eclipse.wb.internal.swing.FormLayout.gef.GefMessages;
 import org.eclipse.wb.internal.swing.FormLayout.model.FormLayoutInfo;
 
 import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.CompoundBorder;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.FigureUtilities;
 import org.eclipse.draw2d.Graphics;
 import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.MarginBorder;
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Insets;
 import org.eclipse.swt.graphics.Font;
@@ -50,8 +50,7 @@ public ResizeHintFigure() {
 		setOpaque(true);
 		setBackgroundColor(ColorConstants.tooltipBackground);
 		setForegroundColor(ColorConstants.tooltipForeground);
-		setBorder(new CompoundBorder(new LineBorder(ColorConstants.tooltipForeground),
-				new MarginBorder(2)));
+		setBorder(new CompoundBorder(new LineBorder(ColorConstants.tooltipForeground), new MarginBorder(2)));
 	}
 
 	////////////////////////////////////////////////////////////////////////////
@@ -93,28 +92,23 @@ public void setShowSizeHint(boolean showSizeHint) {
 	 */
 	@Override
 	public Dimension getPreferredSize(int wHint, int hHint) {
-		Font font = getFont();
 		int width = 0;
 		int height = 0;
 		// text
 		{
-			Dimension size = FigureUtils.calculateTextSize(m_text, font);
+			Dimension size = FigureUtilities.getTextExtents(m_text, getFont());
 			width = Math.max(width, size.width);
 			height += size.height;
 		}
 		// hint
 		if (m_showSizeHint) {
 			int hintWidth = 0;
-			Font boldFont = DrawUtils.getBoldFont(font);
+			Font boldFont = DrawUtils.getBoldFont(getFont());
 			try {
-				hintWidth +=
-						FigureUtils.calculateTextSize(GefMessages.ResizeHintFigure_hint, boldFont).width;
-				hintWidth += FigureUtils.calculateTextSize(GefMessages.ResizeHintFigure_press, font).width;
-				hintWidth += FigureUtils.calculateTextSize("Ctrl", boldFont).width;
-				hintWidth +=
-						FigureUtils.calculateTextSize(
-								MessageFormat.format(GefMessages.ResizeHintFigure_toSetSize, m_sizeHint),
-								font).width;
+				hintWidth += FigureUtilities.getTextExtents(GefMessages.ResizeHintFigure_hint, boldFont).width;
+				hintWidth += FigureUtilities.getTextExtents(GefMessages.ResizeHintFigure_press, getFont()).width;
+				hintWidth += FigureUtilities.getTextExtents("Ctrl", boldFont).width;
+				hintWidth += FigureUtilities.getTextExtents(MessageFormat.format(GefMessages.ResizeHintFigure_toSetSize, m_sizeHint), getFont()).width;
 			} finally {
 				boldFont.dispose();
 			}
@@ -141,31 +135,25 @@ private void update() {
 	//
 	////////////////////////////////////////////////////////////////////////////
 	@Override
-	protected void paintClientArea(Graphics graphics) {
+	protected void paintFigure(Graphics graphics) {
+		super.paintFigure(graphics);
+		graphics.translate(getLocation().x + getInsets().left, getLocation().y + getInsets().top);
 		graphics.drawText(m_text, 0, 0);
 		// draw hint
 		if (m_showSizeHint) {
 			int y = getClientArea().height / 2;
-			//
-			Font font = getFont();
-			Font boldFont = DrawUtils.getBoldFont(font);
+			Font boldFont = DrawUtils.getBoldFont(getFont());
 			try {
 				int x = 0;
 				x = drawText(graphics, x, y + 1, GefMessages.ResizeHintFigure_hint, boldFont);
-				x = drawText(graphics, x, y, GefMessages.ResizeHintFigure_press, font);
+				x = drawText(graphics, x, y, GefMessages.ResizeHintFigure_press, getFont());
 				//
 				graphics.pushState();
 				graphics.setForegroundColor(ColorConstants.lightBlue);
 				x = drawText(graphics, x, y + 1, "Ctrl", boldFont);
 				graphics.popState();
 				//
-				x =
-						drawText(
-								graphics,
-								x,
-								y,
-								MessageFormat.format(GefMessages.ResizeHintFigure_toSetSize, m_sizeHint),
-								font);
+				x = drawText(graphics, x, y, MessageFormat.format(GefMessages.ResizeHintFigure_toSetSize, m_sizeHint), getFont());
 			} finally {
 				boldFont.dispose();
 			}
@@ -177,9 +165,9 @@ protected void paintClientArea(Graphics graphics) {
 	 *
 	 * @return the new <code>x</code>.
 	 */
-	private int drawText(Graphics graphics, int x, int y, String text, Font font) {
+	private static int drawText(Graphics graphics, int x, int y, String text, Font font) {
 		graphics.setFont(font);
 		graphics.drawText(text, x, y);
-		return x + FigureUtils.calculateTextSize(text, font).width;
+		return x + FigureUtilities.getTextExtents(text, font).width;
 	}
 }
diff --git a/org.eclipse.wb.swing.MigLayout/META-INF/MANIFEST.MF b/org.eclipse.wb.swing.MigLayout/META-INF/MANIFEST.MF
index 32dd4d1d5..a69feb3aa 100644
--- a/org.eclipse.wb.swing.MigLayout/META-INF/MANIFEST.MF
+++ b/org.eclipse.wb.swing.MigLayout/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
 Bundle-ManifestVersion: 2
 Bundle-Name: %pluginName
 Bundle-SymbolicName: org.eclipse.wb.swing.MigLayout;singleton:=true
-Bundle-Version: 1.12.0.qualifier
+Bundle-Version: 1.12.100.qualifier
 Bundle-Activator: org.eclipse.wb.internal.swing.MigLayout.Activator
 Bundle-Vendor: %providerName
 Bundle-RequiredExecutionEnvironment: JavaSE-21
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 d873de014..8f6c95009 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
@@ -192,9 +192,9 @@ public void showSourceFeedback(Request request) {
 			}
 			// set feedback bounds
 			{
-				Point mouseLocation = changeBoundsRequest.getLocation().getCopy();
+				Point mouseLocation = changeBoundsRequest.getRelativeLocation().getCopy();
 				Point feedbackLocation = getTextFeedbackLocation(mouseLocation);
-				FigureUtils.translateAbsoluteToFigure(feedbackLayer, feedbackLocation);
+				feedbackLayer.translateToRelative(feedbackLocation);
 				m_feedback.setLocation(feedbackLocation);
 			}
 			// set text
diff --git a/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/gef/header/selection/ResizeHintFigure.java b/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/gef/header/selection/ResizeHintFigure.java
index 006bac74f..ea9f84a53 100644
--- a/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/gef/header/selection/ResizeHintFigure.java
+++ b/org.eclipse.wb.swing.MigLayout/src/org/eclipse/wb/internal/swing/MigLayout/gef/header/selection/ResizeHintFigure.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
@@ -12,21 +12,22 @@
  *******************************************************************************/
 package org.eclipse.wb.internal.swing.MigLayout.gef.header.selection;
 
-import org.eclipse.wb.draw2d.Figure;
-import org.eclipse.wb.draw2d.FigureUtils;
-import org.eclipse.wb.draw2d.border.CompoundBorder;
-import org.eclipse.wb.draw2d.border.LineBorder;
-import org.eclipse.wb.draw2d.border.MarginBorder;
 import org.eclipse.wb.internal.core.utils.ui.DrawUtils;
 import org.eclipse.wb.internal.swing.MigLayout.gef.GefMessages;
 import org.eclipse.wb.internal.swing.MigLayout.model.MigLayoutInfo;
 
 import org.eclipse.draw2d.ColorConstants;
+import org.eclipse.draw2d.CompoundBorder;
+import org.eclipse.draw2d.Figure;
+import org.eclipse.draw2d.FigureUtilities;
 import org.eclipse.draw2d.Graphics;
 import org.eclipse.draw2d.IFigure;
+import org.eclipse.draw2d.LineBorder;
+import org.eclipse.draw2d.MarginBorder;
 import org.eclipse.draw2d.SWTGraphics;
 import org.eclipse.draw2d.geometry.Dimension;
 import org.eclipse.draw2d.geometry.Insets;
+import org.eclipse.draw2d.geometry.Point;
 import org.eclipse.swt.graphics.Font;
 import org.eclipse.swt.graphics.GC;
 import org.eclipse.swt.widgets.Shell;
@@ -49,8 +50,7 @@ public ResizeHintFigure() {
 		setOpaque(true);
 		setBackgroundColor(ColorConstants.tooltipBackground);
 		setForegroundColor(ColorConstants.tooltipForeground);
-		setBorder(new CompoundBorder(new LineBorder(ColorConstants.tooltipForeground),
-				new MarginBorder(5)));
+		setBorder(new CompoundBorder(new LineBorder(ColorConstants.tooltipForeground), new MarginBorder(5)));
 	}
 
 	////////////////////////////////////////////////////////////////////////////
@@ -108,49 +108,39 @@ enum SizeElement {
 	}
 
 	/**
-	 * @return the new {@link SizeElement} to change, if given char if size element selection. May be
-	 *         <code>null</code>, if given character does not correspond any size element.
+	 * @return the new {@link SizeElement} to change, if given char if size element
+	 *         selection. May be <code>null</code>, if given character does not
+	 *         correspond any size element.
 	 */
 	static SizeElement getNewSizeElement(char c) {
-		c = Character.toUpperCase(c);
-		if (c == 'N') {
-			return SizeElement.MIN;
-		} else if (c == 'P') {
-			return SizeElement.PREF;
-		} else if (c == 'X') {
-			return SizeElement.MAX;
-		}
+		return switch (Character.toUpperCase(c)) {
+		case 'N' -> SizeElement.MIN;
+		case 'P' -> SizeElement.PREF;
+		case 'X' -> SizeElement.MAX;
 		// no change
-		return null;
+		default -> null;
+		};
 	}
 
 	/**
-	 * @return the new size unit, if given char if size unit selection. May be <code>null</code>, if
-	 *         given character does not correspond any size unit.
+	 * @return the new size unit, if given char if size unit selection. May be
+	 *         <code>null</code>, if given character does not correspond any size
+	 *         unit.
 	 */
 	static String getNewSizeUnit(char c) {
-		c = Character.toUpperCase(c);
-		if (c == '0') {
-			return "";
-		} else if (c == '1') {
-			return "px";
-		} else if (c == '2') {
-			return "%";
-		} else if (c == '3') {
-			return "lp";
-		} else if (c == '4') {
-			return "pt";
-		} else if (c == '5') {
-			return "mm";
-		} else if (c == '6') {
-			return "cm";
-		} else if (c == '7') {
-			return "in";
-		} else if (c == '8') {
-			return "sp";
-		}
+		return switch (Character.toUpperCase(c)) {
+		case '0' -> "";
+		case '1' -> "px";
+		case '2' -> "%";
+		case '3' -> "lp";
+		case '4' -> "pt";
+		case '5' -> "mm";
+		case '6' -> "cm";
+		case '7' -> "in";
+		case '8' -> "sp";
 		// no change
-		return null;
+		default -> null;
+		};
 	}
 
 	////////////////////////////////////////////////////////////////////////////
@@ -159,16 +149,22 @@ static String getNewSizeUnit(char c) {
 	//
 	////////////////////////////////////////////////////////////////////////////
 	@Override
-	protected void paintClientArea(Graphics graphics) {
+	protected void paintFigure(Graphics graphics) {
+		super.paintFigure(graphics);
+		graphics.translate(getLocation().x + getInsets().left, getLocation().y + getInsets().top);
 		doPaint(graphics);
 	}
 
+	@Override
+	public void setLocation(Point p) {
+		super.setLocation(p);
+	}
+
 	private Dimension doPaint(Graphics graphics) {
-		Font font = getFont();
-		Font boldFont = DrawUtils.getBoldFont(font);
+		Font boldFont = DrawUtils.getBoldFont(getFont());
 		// use fonts
 		try {
-			int y = drawText(graphics, m_text, 0, 0, font).height;
+			int y = drawText(graphics, m_text, 0, 0, getFont()).height;
 			// Note
 			{
 				int x = 0;
@@ -177,7 +173,7 @@ private Dimension doPaint(Graphics graphics) {
 				size = drawText(graphics, GefMessages.ResizeHintFigure_note, x, y + 1, boldFont);
 				x += size.width;
 				//
-				size = drawText(graphics, GefMessages.ResizeHintFigure_keyHint, x, y, font);
+				size = drawText(graphics, GefMessages.ResizeHintFigure_keyHint, x, y, getFont());
 				x += size.width;
 				y += size.height;
 			}
@@ -185,39 +181,22 @@ private Dimension doPaint(Graphics graphics) {
 			{
 				int x = 10;
 				Dimension size;
-				size =
-						drawHintColumn(
-								graphics,
-								x,
-								y,
-								boldFont,
-								font,
-								new String[]{"N", "P", "X"},
-								new String[]{
-										GefMessages.ResizeHintFigure_minimumSize,
-										GefMessages.ResizeHintFigure_preferredSize,
-										GefMessages.ResizeHintFigure_maximumSize});
+				size = drawHintColumn(graphics, x, y, boldFont, getFont(), new String[] { "N", "P", "X" },
+						new String[] { GefMessages.ResizeHintFigure_minimumSize, //
+								GefMessages.ResizeHintFigure_preferredSize, //
+								GefMessages.ResizeHintFigure_maximumSize });
 				x += size.width + 10;
-				size =
-						drawHintColumn(graphics, x, y, boldFont, font, new String[]{
-								"0",
-								"1",
-								"2",
-								"3",
-								"4",
-								"5",
-								"6",
-								"7",
-								"8",}, new String[]{
-										GefMessages.ResizeHintFigure_unit_default,
-										GefMessages.ResizeHintFigure_unit_pixels,
-										GefMessages.ResizeHintFigure_unit_percents,
-										GefMessages.ResizeHintFigure_unit_logicalPixels,
-										GefMessages.ResizeHintFigure_unit_points,
-										GefMessages.ResizeHintFigure_unit_millimeters,
-										GefMessages.ResizeHintFigure_unit_centimeters,
-										GefMessages.ResizeHintFigure_unit_inches,
-										GefMessages.ResizeHintFigure_unit_screenPercents});
+				size = drawHintColumn(graphics, x, y, boldFont, getFont(),
+						new String[] { "0", "1", "2", "3", "4", "5", "6", "7", "8", },
+						new String[] { GefMessages.ResizeHintFigure_unit_default, //
+								GefMessages.ResizeHintFigure_unit_pixels, //
+								GefMessages.ResizeHintFigure_unit_percents, //
+								GefMessages.ResizeHintFigure_unit_logicalPixels, //
+								GefMessages.ResizeHintFigure_unit_points, //
+								GefMessages.ResizeHintFigure_unit_millimeters, //
+								GefMessages.ResizeHintFigure_unit_centimeters, //
+								GefMessages.ResizeHintFigure_unit_inches, //
+								GefMessages.ResizeHintFigure_unit_screenPercents });
 				return new Dimension(x + size.width, y + size.height);
 			}
 		} finally {
@@ -233,16 +212,10 @@ private Dimension doPaint(Graphics graphics) {
 	private static Dimension drawText(Graphics graphics, String text, int x, int y, Font font) {
 		graphics.setFont(font);
 		graphics.drawText(text, x, y);
-		return FigureUtils.calculateTextSize(text, font);
+		return FigureUtilities.getTextExtents(text, font);
 	}
 
-	private static Dimension drawHintColumn(Graphics graphics,
-			int x_,
-			int y_,
-			Font keyFont,
-			Font textFont,
-			String[] keyArray,
-			String[] textArray) {
+	private static Dimension drawHintColumn(Graphics graphics, int x_, int y_, Font keyFont, Font textFont, String[] keyArray, String[] textArray) {
 		int lineWidth = 0;
 		int lineHeight = 0;
 		//
@@ -252,7 +225,7 @@ private static Dimension drawHintColumn(Graphics graphics,
 			int keyWidth = 0;
 			{
 				for (String key : keyArray) {
-					Dimension size = FigureUtils.calculateTextSize(key, keyFont);
+					Dimension size = FigureUtilities.getTextExtents(key, keyFont);
 					keyWidth = Math.max(keyWidth, size.width);
 					lineHeight = size.height;
 				}
