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