On Thu, 30 Mar 2023 21:01:22 GMT, Andy Goryachev <ango...@openjdk.org> wrote:

>> The determined `prefWidth` of a `TableCell` could be `0.0` when a 
>> `fixedCellSize` is set.
>> This happened because the `TableCell` may not have a skin since it was never 
>> added to the scene graph yet.
>> 
>> The fix is to make sure we get the `prefWidth` after the `TableCell` was 
>> added to the scene graph.
>> That is also the reason why the problem only happened the first time and 
>> never again after (skin is then already created).
>
> modules/javafx.controls/src/main/java/javafx/scene/control/skin/TableRowSkinBase.java
>  line 358:
> 
>> 356:                 // Note: We have to determine the pref width here 
>> because the add operation above may trigger the skin
>> 357:                 // creation first, which is what makes it possible to 
>> get a correct value here in the first place.
>> 358:                 width = tableCell.prefWidth(height);
> 
> I wonder if it's safe to move this call (one one after else:430) before the 
> if statement on line 352?

I'm not sure if I understand correctly: You mean call 
`tableCell.prefWidth(height)` above?
I chose this way so we always call `tableCell.prefWidth(height)` just once, 
never twice.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1077#discussion_r1153835648

Reply via email to