RFR: 8089589: [ListView] ScrollBar content moves toward-backward during scrolling.

Johan Vos jvos at openjdk.java.net
Mon Feb 15 21:16:55 UTC 2021


This PR introduces a refactory for VirtualFlow, fixing a number of issues reported about inconsistent scrolling speed (see https://bugs.openjdk.java.net/browse/JDK-8089589)
The problem mentioned in the JBS issue (and in related issues) is that the VirtualFlow implementation depends on cell index and cell count, instead of on pixel count. The latter is unknown when the VirtualFlow is created, and pre-calculating the size of a large set of items would be very expensive.
Therefore, this PR uses a combination of a gradual calculation of the total size in pixels (estimatedSize) and a smoothing part that prevents the scrollback to scroll in the reverse direction as the requested change.
This PR currently breaks a number of tests that hard-coded depend on a number of evaluations. This is inherit to the approach of this PR: if we want to estimate the total size, we need to do some additional calculations. In this PR, I try to balance between consistent behavior and performance.

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

Commit messages:
 - fix whitespace issues
 - * fix failing tests by hard-coding new count values.
 - Fix whitespace issues
 - fix a few more tests.
 - VirtualFlow refactory to pixel-based calculations

Changes: https://git.openjdk.java.net/jfx/pull/398/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=398&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8089589
  Stats: 594 lines in 6 files changed: 446 ins; 85 del; 63 mod
  Patch: https://git.openjdk.java.net/jfx/pull/398.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/398/head:pull/398

PR: https://git.openjdk.java.net/jfx/pull/398


More information about the openjfx-dev mailing list