On Thu, 15 May 2025 11:49:45 GMT, Ziad El Midaoui <zelmida...@openjdk.org> 
wrote:

>>> This would perform a layout of all cells, re-layout of previous cells and 
>>> layout of next cells. but, layout of next cells is performed again as 
>>> continuation layout of TreeView. A solution would be to break the loop when 
>>> `cell` is current cell being layouted, so that at least the layout of next 
>>> cells is not performed twice.
>> 
>> Would it be possible to avoid re-layout of the cells that are after the Cell 
>> with a disclosureNode ?
>
>> Would it be possible to avoid re-layout of the cells that are after the Cell 
>> with a disclosureNode ?
> 
> This is actually what is happening, when we scroll down and find a TreeCell 
> that has a disclosure node this is when the condition `disclosureWidth > 
> defaultDisclosureWidth` is true and we do a re-layout of the visible previous 
> cells before the disclosure node and the new value is saved in the 
> `maxDisclosureWidthMap` so the cells that are layouted after the disclosure 
> node when scrolling are using the new value of `defaultDisclosureWidth`.

Yes, the cells after disclosure node use the new `defaultDisclosureWidth`. But 
their layout happens twice using the new `defaultDisclosureWidth`.

**First time**: The loop `for (IndexedCell cell : flow.cells) {` initiates the 
layout of all the cells, including the cells that are after the disclosure node.

**Second time**: and layout of those after cells happens again as part of 
ongoing layout of `TreeView` from this method `Parent.layout()`

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1715#discussion_r2097495175

Reply via email to