On Fri, 18 Aug 2023 17:34:28 GMT, Jose Pereda <jper...@openjdk.org> wrote:

>> modules/javafx.graphics/src/main/java/javafx/scene/layout/BorderPane.java 
>> line 395:
>> 
>>> 393: 
>>> 394:             double middleAreaHeight = Math.max(0,
>>> 395:                     height - insets.getTop() - insets.getBottom() - 
>>> topPrefHeight - bottomPrefHeight);
>> 
>> should these be snapped?  snappedBottomInset() etc.?
>
> You might be right. 
> 
> In this case, `topPrefHeight` comes from `getAreaHeight()`, that calls 
> `computeChildPrefAreaHeight()` that ultimately uses `snapSpaceY()`. 
> 
> However, this would also mean that the returned value should use snapped 
> insets as well?
> 
> return insets.getLeft() +
>                 Math.max(leftPrefWidth + centerMinWidth + rightPrefWidth, 
> Math.max(topMinWidth,bottomMinWidth)) +
>                 insets.getRight();
> 
> and also for the layout call?

Following the great insight @hjohn vocalized in one of the earlier PRs, at the 
end we are always dealing with integer pixel coordinates.  

so, to be correct, any computation that returns pixel coordinates must use 
snapped values.  (it also means that any computation that does not result in 
pixel coordinates, might use unsnapped values, such as when we try to 
distribute a single pixel among many columns or nodes).

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

PR Review Comment: https://git.openjdk.org/jfx/pull/1203#discussion_r1298708502

Reply via email to