On Wed, 7 Dec 2022 21:34:12 GMT, Harshitha Onkar <hon...@openjdk.org> wrote:
> In this fix, the common code required for scaled border rendering is unified > and added to SwingUtilities3. This is achieved by adding a functional > interface to SwingUtilities3 and calling the the respective paintBorder > function passed as parameter to method. > > Following are the usual steps for any border scaling - > > - Resetting transform. > - Calculating new width, height, x & y-translations. > - Perform the required border rendering. > - And at the end restore the previous transform. > > To test the refactored code, 3 separate border scaling instances were taken > (details below) and the SwingUtilities3.paintBorder, (containing the common > functionality) was applied. All the tests associated with the respective > border changes pass. > > 1. EtchedBorder - [PR#7449](https://github.com/openjdk/jdk/pull/7449) - Test: > ScaledEtchedBorderTest.java > 2. LineBorder - [PR#10681](https://github.com/openjdk/jdk/pull/10681) - Test: > ScaledLineBorderTest & ScaledTextFieldBorderTest.java > 3. JInternalFrame Border - > [PR#10274](https://github.com/openjdk/jdk/pull/10274) - Test: > InternalFrameBorderTest.java > > The advantage of this solution is - it avoids code repetition and can be > reused across all the border classes requiring border scaling fix. Changes requested by raja...@github.com (no known OpenJDK username). src/java.desktop/share/classes/com/sun/java/swing/SwingUtilities3.java line 174: > 172: > 173: if (resetTransform) { > 174: g2d.setTransform(new AffineTransform()); Can we keep the original comment about this: /* Deactivate the HiDPI scaling transform, * so we can do paint operations in the device * pixel coordinate system instead of the logical coordinate system. */ src/java.desktop/share/classes/com/sun/java/swing/SwingUtilities3.java line 190: > 188: > 189: if (resetTransform) { > 190: double xx = at.getScaleX() * x + at.getTranslateX(); Can we combine this code block with the above if (resetTransform) at line 173 ? or did you keep it separate for a reason? ------------- PR: https://git.openjdk.org/jdk/pull/11571