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

Reply via email to