On Sun, 21 Dec 2025 21:07:30 GMT, Cormac Redmond <[email protected]> wrote:

>> `length` is also supposed to be rounded with a similar function; if that's 
>> the case, then this should always work correctly.  Floating point operations 
>> may introduce slight errors, but if you round them to whole pixels (whether 
>> those pixels are of size 1, 0.75, 0.66666 or 0.5) the resulting value should 
>> always be the same for the same pixel position/size.
>> 
>> When I look at the values used in such calculations, and I see something 
>> weird like 0.6666664 or 1.000001, then I know it is not properly rounded; so 
>> if `length` looks good then it should work correctly.  Alternatively, you 
>> can try and see where `length` comes from and if it was the result of some 
>> snapping function.
>
> Sorry, I should have mentioned before.
> 
> `getOverflowNodeIndex(double length),` the method I've changed, is called in 
> two places from the same method:  `organizeOverflow(double length)`.
> 
> The `length` value given into _that_ method, does come from a `snapSizeX/Y` 
> on the computed length, _originally_, (which is a ceil); so that's fine. But 
> there are other concerning operations in `organizeOverflow(double length)` 
> thereafter (in the case where the overflow is displayed):
> 
> 
>         if (newOverflowNodeIndex < getSkinnable().getItems().size()) {
>             if (getSkinnable().getOrientation() == Orientation.VERTICAL) {
>                 length -= snapSizeY(overflowMenu.prefHeight(-1));
>             } else {
>                 length -= snapSizeX(overflowMenu.prefWidth(-1));
>             }
>             length -= getSpacing();
>             newOverflowNodeIndex = getOverflowNodeIndex(length);
>         }
> 
> 
> E.g., we're doing more floating point operations there, and not rounding or 
> snapping thereafter before calling `getOverflowNodeIndex(double length)`, 
> which also does nothing (to `length`).

An example of length rounding due to "-=" operations (again, at 1.25 scale), 
when overflow should show:

<img width="855" height="247" alt="image" 
src="https://github.com/user-attachments/assets/aca455ab-0d32-4e46-9868-78d786cd4a7b";
 />

I can't (easily) get it to create any actually problems for me, but the 
question remains, should be re-snap it also?

If it's not (demonstrably) broken, don't fix it, maybe.

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

PR Review Comment: https://git.openjdk.org/jfx/pull/2016#discussion_r2638132356

Reply via email to