On Thu, 6 Mar 2025 16:21:52 GMT, Andy Goryachev <ango...@openjdk.org> wrote:

>> Changed the StubTextLayout to use product PrismTextLayout with much 
>> simplified glyph layout (via stubbed fonts).  The new layout assumes all the 
>> glyphs are squares of font size, while the bold type face produces wider 
>> glyphs (by 1 pixel).  The default font size has changed from 10 to 12 to 
>> make it closer to win/linux.
>> 
>> This brings the test environment closer to the product configuration and 
>> expands the capabilities of our headless testing pipeline, which will be 
>> useful for upcoming behavior tests.
>> 
>> Existing tests have been adjusted/reworked mainly due to default font size 
>> change.
>
> Andy Goryachev has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Revert "fixed bad merge"
>   
>   This reverts commit 0e9e8ee63895bd1d976398587add5b96958d38aa.

Looks good. I left a few questions and a couple suggestions. I'll reapprove if 
you decide to change anything.

modules/javafx.controls/src/test/java/test/javafx/scene/chart/StackedBarChartTest.java
 line 116:

> 114:         String bounds = computeBoundsString((Region)childrenList.get(0), 
> (Region)childrenList.get(1),
> 115:                 (Region)childrenList.get(2));
> 116:         assertEquals("10 440 216 34 236 397 216 77 461 345 216 129 ", 
> bounds);

I presume these changes are needed because they are also hard-coded values that 
are changing with the StubToolkit changes?

modules/javafx.controls/src/test/java/test/javafx/scene/control/ListViewTest.java
 line 100:

> 98: import test.com.sun.javafx.scene.control.test.RT_22463_Person;
> 99: 
> 100: /**

Minor: We don't typically use javadoc-style comments in the class docs of test 
classes, but since we have a global RFE to address this, I don't think it 
matters all that much.

modules/javafx.graphics/src/main/java/com/sun/javafx/text/GlyphLayoutManager.java
 line 42:

> 40:  */
> 41: public class GlyphLayoutManager {
> 42:     private static GlyphLayout REUSABLE_INSTANCE = newInstance();

This can be final.

modules/javafx.graphics/src/main/java/com/sun/javafx/text/GlyphLayoutManager.java
 line 43:

> 41: public class GlyphLayoutManager {
> 42:     private static GlyphLayout REUSABLE_INSTANCE = newInstance();
> 43:     private static final AtomicBoolean GUARD = new AtomicBoolean(false);

Minor: "IN_USE" seems like a better name (and is what the original code used).

modules/javafx.graphics/src/main/java/com/sun/javafx/text/PrismTextLayout.java 
line 57:

> 55:  * Prism TextLayout
> 56:  */
> 57: public abstract class PrismTextLayout implements TextLayout {

Minor: Instead of making this abstract, did you consider leaving it concrete, 
overriding the methods you need in StubTextLayout? It's fine to leave the 
change as you have it.

modules/javafx.graphics/src/main/java/com/sun/javafx/text/PrismTextLayoutFactory.java
 line 37:

> 35:     /* Same strategy as GlyphLayout */
> 36:     private static final TextLayout REUSABLE_INSTANCE = 
> FACTORY.createLayout();
> 37:     private static final AtomicBoolean GUARD = new AtomicBoolean(false);

Minor: IN_USE might be a better name.

modules/javafx.graphics/src/main/java/com/sun/javafx/text/TextRun.java line 45:

> 43:     int script;
> 44:     TextSpan span;
> 45:     com.sun.javafx.scene.text.TextLine line;

I recommend an import rather than listing the fully-qualified class here and 
below.

modules/javafx.graphics/src/test/java/test/com/sun/javafx/pgstub/StubFontResource.java
 line 99:

> 97:         if (bold == null) {
> 98:             String name = font.getStyle();
> 99:             bold = name.toLowerCase(Locale.US).contains("bold");

Should this be `Locale.ROOT` or does it really need to be `Locale.US`?

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

Marked as reviewed by kcr (Lead).

PR Review: https://git.openjdk.org/jfx/pull/1667#pullrequestreview-2714620831
PR Review Comment: https://git.openjdk.org/jfx/pull/1667#discussion_r2012620345
PR Review Comment: https://git.openjdk.org/jfx/pull/1667#discussion_r2012660760
PR Review Comment: https://git.openjdk.org/jfx/pull/1667#discussion_r2012603455
PR Review Comment: https://git.openjdk.org/jfx/pull/1667#discussion_r2012605436
PR Review Comment: https://git.openjdk.org/jfx/pull/1667#discussion_r2012731466
PR Review Comment: https://git.openjdk.org/jfx/pull/1667#discussion_r2012734374
PR Review Comment: https://git.openjdk.org/jfx/pull/1667#discussion_r2012742406
PR Review Comment: https://git.openjdk.org/jfx/pull/1667#discussion_r2012853062

Reply via email to