On Sun, 17 Mar 2024 18:07:35 GMT, Johan Vos <[email protected]> wrote:
>> Florian Kirmaier has updated the pull request incrementally with one
>> additional commit since the last revision:
>>
>> JDK-8323511
>> reverted accidental indentation chang
>
> modules/javafx.controls/src/main/java/com/sun/javafx/scene/control/VirtualScrollBar.java
> line 142:
>
>> 140: int index = firstVisibleCell.getIndex();
>> 141: if (newValue < oldValue) {
>> 142: index = Math.max(0, index - 1);
>
> Why are the boundary checks (Math.max/min) removed here?
The ``Math.max(0, index - 1)`` was introduced to fix an
IndesOutOfBoundsException
([JDK-8311983](https://bugs.openjdk.org/browse/JDK-8311983)) for mouse clicks
above the thumb, but it also introduced this bug (different scroll amount for
clicks above and below thumb).
This change fixes the handling of -1 cell indexes in a different way, but for
that we have to pass it to ``VirtualFlow.scrollTo(int index)`` and then to
``VirtualFlow.tryScrollOneCell(int targetIndex, boolean downOrRight)``.
Therefore it is necessary to remove this ``Math.max(..)`` call.
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1326#discussion_r1528208036