RFR: 8323511 Scrollbar Click jumps inconsistent amount of pixels [v2]

eduardsdv duke at openjdk.org
Mon Mar 18 09:46:39 UTC 2024


On Sun, 17 Mar 2024 18:07:35 GMT, Johan Vos <jvos at openjdk.org> 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


More information about the openjfx-dev mailing list