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

Cormac Redmond credmond at certak.com
Sat Jul 19 18:01:19 UTC 2025


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/20250719/4343592e/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/20250719/4343592e/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/20250719/4343592e/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/20250719/4343592e/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/20250719/4343592e/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/20250719/4343592e/image-0009.png>


More information about the openjfx-dev mailing list