On Wed, 9 Sep 2020 02:46:37 GMT, yosbits <github.com+7517141+yos...@openjdk.org> wrote:
>> @yososs Per [this >> message](https://mail.openjdk.java.net/pipermail/openjfx-dev/2020-September/027534.html) >> on the >> openjfx-dev mailing list, I have closed >> [JDK-8185886](https://bugs.openjdk.java.net/browse/JDK-8185886) as a >> duplicate, >> and suggested another existing JBS issue for this PR to use. Please change >> the title to: 8185887: TableRowSkinBase >> fails to correctly virtualize cells in horizontal direction > > Below are the answers to JBS's suggestions. > >> The patch below resolves the issue, but it is not likely the correct >> solution (we are trying to determine the table >> width, but we are getting the width and padding on the underlying >> virtualflow (the width is fine, the padding should >> really come from tableview directly): > > You probably mention this part, > At least padding refers to Skinnable(TableRow or TreeTableRow). This is the > same as before (L683). The width of > VirtualFlow is determined by the header of Table. > modules/javafx.controls/src/main/java/javafx/scene/control/skin/TableRowSkinBase.java#L360-L365 > Java > final VirtualFlow<?> virtualFlow = getVirtualFlow(); > final double scrollX = virtualFlow == null ? 0.0 : > virtualFlow.getHbar().getValue(); > final Insets padding = getSkinnable().getPadding(); > final double vfWidth = virtualFlow == null ? 0.0:virtualFlow.getWidth(); > final double headerWidth = vfWidth - (padding.getLeft() + > padding.getRight()); > > For example, can you assume a case that does not work properly? This is the answer to JBS's comment. The BigTreeTableViewTest.java attached to this PR commentary is a modified version of the JDK-8166956 test code. The original test code is good for reproducing the problem, but I have decided that it cannot be used as a test code because the cell values are random and the cell values change randomly with the close / expand operation. ------------- PR: https://git.openjdk.java.net/jfx/pull/125