Something I found out while experimenting in https://github.com/openjdk/jfx/pull/2051. It was on my list to do since then.
The `VirtualFlow` can end up creating 1-2 unnecessary cells, which then are never used. They just sit in the pile. This happens because we may end up calling `addLeadingCells` although our first cell is already on position `0`, so at the top - there is no cell above us. In this scenario, we do not need to call `addLeadingCells`. Also added the optimization I found in the PR mentioned above. When we have 10 visible cells, size 25px and scroll 10px, we will have 11 cells visible. If we scroll to the top again, we will have 10 cells visible again -- and in this case we will remove it from the `sheet`. But the pile could contain even more piled cells (e.g. when the application size got smaller, we have less cells to render, all remaining cells went into the pile). So the removal is a bit faster with that method, instead of always calling `removeAll`. Same functionality. --------- - [x] I confirm that I make this contribution in accordance with the [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai). ------------- Commit messages: - 8392117: VirtualFlow may end up creating 1-2 unnecessary cells Changes: https://git.openjdk.org/jfx/pull/2308/files Webrev: https://webrevs.openjdk.org/?repo=jfx&pr=2308&range=00 Issue: https://bugs.openjdk.org/browse/JDK-8392117 Stats: 56 lines in 2 files changed: 48 ins; 1 del; 7 mod Patch: https://git.openjdk.org/jfx/pull/2308.diff Fetch: git fetch https://git.openjdk.org/jfx.git pull/2308/head:pull/2308 PR: https://git.openjdk.org/jfx/pull/2308
