RFR: 8185887: TableRowSkinBase fails to correctly virtualize cells in horizontal direction [v4]
Andy Goryachev
angorya at openjdk.org
Thu Jan 16 22:49:41 UTC 2025
On Thu, 16 Jan 2025 22:41:07 GMT, Marius Hanl <mhanl at openjdk.org> wrote:
>> Relying on two pulses may cause flicker (I had a similar issue with the RichTextArea).
>>
>> The solution is to re-compute the layout in layoutChildren() when needed (i.e. when scroll bar status changes).
>
> Good to know, we should document your solution in more detail (and with the concrete fix -> code snippet from the RTA) together with the HSB bug as a new ticket probably? Then we may already have a potential solution with code, and of course a ticket that tracks the bug, if we do not have already (I think I saw a similar bug already, but not 100% sure).
VFlow LL1529-1555
// scroll bars
boolean vsbVisible = useContentHeight ?
false :
(topCellIndex() > 0) ?
true :
(arrangementHeight + contentPaddingTop + contentPaddingBottom) > viewPortHeight;
if (vsbVisible != vscroll.isVisible()) {
vscroll.setVisible(vsbVisible);
// do another layout pass with the scrollbar updated
layoutCells();
return;
}
if (vsbVisible) {
width -= vsbWidth;
}
boolean hsbVisible = (wrap || useContentWidth) ?
false :
(unwrappedWidth + contentPaddingLeft + contentPaddingRight) > viewPortWidth;
if (hscroll.isVisible() != hsbVisible) {
hscroll.setVisible(hsbVisible);
// do another layout pass with the scrollbar updated
layoutCells();
return;
}
https://github.com/andy-goryachev-oracle/jfx/blob/d07d408fa79e25a02b0d5e2f9aeb3990a7136077/modules/jfx.incubator.richtext/src/main/java/com/sun/jfx/incubator/scene/control/richtext/VFlow.java#L1529
-------------
PR Review Comment: https://git.openjdk.org/jfx/pull/1644#discussion_r1919336541
More information about the openjfx-dev
mailing list