As discussed in the JBS 
[issue](https://bugs.openjdk.java.net/browse/JDK-8177945), there are some 
inconsistencies in the use of `VirtualContainerBase::requestRebuildCells` from 
`VirtualContainerBase::updateItemCount()`, which is implemented in the 
different skin classes for virtualised controls `TableViewSkinBase`, 
`ListViewSkin` or `TreeTableViewSkin`.

The latter already commented out this call (related to JDK-8155798 and 
JDK-8147483). 

This PR removes now the calls to `VirtualContainerBase::requestRebuildCells` 
from `TableViewSkinBase`  (except for the case `itemCount = 0` based on 
JDK-8118897 and JDK-8098235) and `ListViewSkin`.

A test is provided for TableView, that verifies that the `selected` 
pseudo-class state remains set for the selected cell while adding more items. 
Without this fix, as the cells are rebuilt, the pseudo-class states are clean 
and set all over again, thus the flickering.

For ListView, the test rt_35395 (JDK-8091726) is updated, as now there are way 
less calls to updateItem.

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

Commit messages:
 - Don’t rebuild VirtualFlow cells when TableView/ListView item count changes. 
Provide test for TableView, update test for ListView

Changes: https://git.openjdk.java.net/jfx/pull/348/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jfx&pr=348&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8177945
  Stats: 71 lines in 4 files changed: 59 ins; 8 del; 4 mod
  Patch: https://git.openjdk.java.net/jfx/pull/348.diff
  Fetch: git fetch https://git.openjdk.java.net/jfx pull/348/head:pull/348

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

Reply via email to