RFR: 6562639: Wrong pixel bounds from TextLayout with white font

Daniel Gredler dgredler at openjdk.org
Sat Dec 13 00:41:08 UTC 2025


One of the possible code paths for `TextLayout.getPixelBounds(...)` actually draws the text on a `Graphics2D` and checks the image pixels afterwards. The text is drawn over a white background, so if the user sets the font's foreground color to white then the text pixels cannot be detected (white on white).

This PR fixes the issue by removing the code that sets the background to white, leaving the background as the default ARGB color (0 = transparent black). This does not cause a new problem for users who might set their font foreground color to transparent black, because transparent font foreground colors always return an empty bounds anyway (by virtue of being transparent).

The updated code should also be slightly faster since it's doing less work, though I haven't run any performance tests.

-------------

Commit messages:
 - Fix test on mac
 - Fix pixel bounds calculation for white text

Changes: https://git.openjdk.org/jdk/pull/28809/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=28809&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-6562639
  Stats: 106 lines in 2 files changed: 98 ins; 3 del; 5 mod
  Patch: https://git.openjdk.org/jdk/pull/28809.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/28809/head:pull/28809

PR: https://git.openjdk.org/jdk/pull/28809


More information about the client-libs-dev mailing list