On Mon, 4 Mar 2024 11:01:09 GMT, Karthik P K <k...@openjdk.org> wrote:

>> In the `getHitInfo()` method of PrismTextLayout, RTL node orientation 
>> conditions were not considered, hence hit test values such as character 
>> index and insertion index values were incorrect.
>> 
>> Added checks for RTL orientation of nodes and  fixed the issue in 
>> `getHitInfo()` to calculate correct hit test values.
>> 
>> Added system tests to validate the changes.
>
> Karthik P K has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Add unit test

a couple of very minor comments, I am ok with pushing this code as is.

modules/javafx.graphics/src/main/java/com/sun/javafx/scene/text/TextLayout.java 
line 108:

> 106:             if (obj == null)
> 107:                 return false;
> 108:             if (getClass() != obj.getClass())

any reason why this code uses getClass() != obj.getClass() ?

perhaps a better choice might be the usual pattern

if(x == this) {
 return true;
} else if(x instanceof Hit h) {
 return charIndex == h.charIndex && ...
}
return false;

modules/javafx.graphics/src/main/java/javafx/scene/text/Text.java line 1044:

> 1042:     private int findFirstRunStart() {
> 1043:         int start = Integer.MAX_VALUE;
> 1044:         for (GlyphList r: getRuns()) {

the old code had a 0 check for getRuns.length, presumably to avoid the iterator 
creation.
the new code is probably fine, because most of the time we'll have the need for 
the iterator anyway.

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

Marked as reviewed by angorya (Reviewer).

PR Review: https://git.openjdk.org/jfx/pull/1323#pullrequestreview-1914727360
PR Review Comment: https://git.openjdk.org/jfx/pull/1323#discussion_r1511416507
PR Review Comment: https://git.openjdk.org/jfx/pull/1323#discussion_r1511420549

Reply via email to