On Fri, 31 Mar 2023 08:40:15 GMT, Jose Pereda <jper...@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); > > Alternatively, you could have just kept the first call to > `tableCell::prefWidth` as it was, and add a second one only inside the above > if expression, right after the tableCell is added to the tableRow. > I take that, only for such case, there would be two calls instead of one, but > it seems to be somehow a cleaner patch and explanation True and I also thought about it, but I'm still in favor of calling it only as much as needed ------------- PR Review Comment: https://git.openjdk.org/jfx/pull/1077#discussion_r1154348166