Bug: ToolBar always using overflow menu whenever a scaled resolution set

Cormac Redmond credmond at certak.com
Tue Jul 22 19:08:08 UTC 2025


Any thoughts on this? It seems like a definite JavaFX bug with hopefully a
simple fix. Choosing any fractional scaled resolution may or may not cause
the issue. I also wonder what other controls may suffer from the same
issues.

On Sat 19 Jul 2025, 19:01 Cormac Redmond, <credmond at certak.com> wrote:

> Hi,
>
> I've traced the bug down to a rounding error. See the below screenshot in
> ToolBarSkin's getOverflowNodeIndex(double length).
>
> These two numbers are not equal, but should be. snapSizeX() ultimately
> ends up grabbing getSnapScaleX(), whose value would be 1.25. If it's 1
> (i.e., no scaling), we don't see this issue. If it's 1.25, we see this
> rounding difference between the two numbers in this instance. If these two
> numbers are not equal, the calling code mistakenly assumes the overflow box
> is necessary.
>
> [image: image.png]
>
> Can someone fix this?
>
>
>
> Kind Regards,
> Cormac
>
> On Sat, 19 Jul 2025 at 18:33, Cormac Redmond <credmond at certak.com> wrote:
>
>> Confusingly, make the string longer, such as "Create Schema 123 123 123":
>>
>>         bp.setTop(new HBox(new ToolBar(new Button("Create Schema 123 123
>> 123"))));
>>
>> ...and the overflow doesn't appear (but still, anything between and
>> including 13-24, it does):
>>
>> [image: image.png]
>>
>>
>>
>>
>> Kind Regards,
>> Cormac
>>
>> On Sat, 19 Jul 2025 at 11:12, Cormac Redmond <credmond at certak.com> wrote:
>>
>>> Hi,
>>>
>>> There's a bug whenever using a ToolBar on Windows if you set your
>>> resolution scale > 100% (which is quite common). E.g., 125%:
>>>
>>> [image: image.png]
>>>
>>> E.g., this is what a ToolBar always renders if scale is 125%:
>>>
>>> [image: image.png]
>>>
>>> As compared to what you'd expect (scale set to normal/100%):
>>>
>>> [image: image.png]
>>>
>>> Very easy to reproduce the above, set your scale to 125% and run this:
>>>
>>> public class ToolbarBugApp extends Application {
>>>
>>>     @Override
>>>     public void start(Stage primaryStage) {
>>>         BorderPane bp = new BorderPane();
>>>         // Wrapping in HBox and using button with 13+ chars causes bug
>>>         bp.setTop(new HBox(new ToolBar(new Button("Create Schema"))));
>>> // BUG
>>>         // bp.setTop(new ToolBar(new Button("Create Schema"))); // NO BUG
>>> (no HBox)
>>>         // bp.setTop(new HBox(new ToolBar(new Button("Create Schem"))));
>>> // NO BUG (12 chars)
>>>         primaryStage.setScene(new Scene(bp, 600, 400));
>>>         primaryStage.show();
>>>     }
>>>
>>>     public static void main(String[] args) {
>>>         launch(args);
>>>     }
>>> }
>>>
>>> As per the comments, this bug appears to happen when your ToolBar is
>>> wrapped in a HBox and contains a Button that has 13+ characters, for
>>> example. This is quite a serious bug, in my opinion.
>>>
>>> I believe this is present in JFX 24 and the JFX 25 master branch.
>>>
>>>
>>> Kind Regards,
>>>
>>> *Cormac Redmond*
>>> Software Engineer, Certak Ltd.
>>>
>>> e: credmond at certak.com | m: +353 (0) 86 268 2152 | w: www.certak.com
>>>
>>>
>>>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250722/22e566c3/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 14011 bytes
Desc: not available
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250722/22e566c3/image-0005.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 6945 bytes
Desc: not available
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250722/22e566c3/image-0006.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 6634 bytes
Desc: not available
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250722/22e566c3/image-0007.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 5287 bytes
Desc: not available
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250722/22e566c3/image-0008.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 177920 bytes
Desc: not available
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250722/22e566c3/image-0009.png>


More information about the openjfx-dev mailing list