[External] : Re: Bug: ToolBar always using overflow menu whenever a scaled resolution set

Andy Goryachev andy.goryachev at oracle.com
Tue Sep 2 20:16:46 UTC 2025


Created https://bugs.openjdk.org/browse/JDK-8366739

Thanks!
-andy

From: Cormac Redmond <credmond at certak.com>
Date: Friday, August 29, 2025 at 17:20
To: Kevin Rushforth <kevin.rushforth at oracle.com>, Andy Goryachev <andy.goryachev at oracle.com>
Cc: openjfx-dev at openjdk.org <openjfx-dev at openjdk.org>
Subject: [External] : Re: Bug: ToolBar always using overflow menu whenever a scaled resolution set

Hi,

A variation of this bug still persists (JFX 25-ea+28).

Run this code (125% display scaling, on Windows):

public class ToolbarBugApp extends Application {

    @Override
    public void start(Stage primaryStage) {
        ToolBar tb = new ToolBar();
        tb.getItems().addAll(
                new Separator(Orientation.VERTICAL),
                new Button("Create Schema")
        );

        BorderPane bp = new BorderPane();
        bp.setTop(new HBox(tb));
        primaryStage.setScene(new Scene(bp, 600, 400));
        primaryStage.show();
    }

    public static void main(String[] args) {
        launch(args);
    }
}

And you'll still see this:

[image.png]



Kind Regards,
Cormac

On Thu, 24 Jul 2025 at 16:12, Kevin Rushforth <kevin.rushforth at oracle.com<mailto:kevin.rushforth at oracle.com>> wrote:
https://bugs.openjdk.org/browse/JDK-8364049


On 7/24/2025 7:15 AM, Kevin Rushforth wrote:
This does look like a real bug. Thanks for filing it.

Unfortunately one cannot attach screenshots on JBS submissions, so a text description will have to do.

I have attached the two images to the bug. It will show up publicly, with a JDK bug ID, soon.

-- Kevin


On 7/23/2025 3:17 PM, Cormac Redmond wrote:
I've a habit of finding non-bugs, so prefer to discuss it first to get some feedback (and/or to avoid duplicating known bugs), but I assume this is definitely an issue, so I created it on JBS now: 9078765...

Unfortunately one cannot attach screenshots on JBS submissions, so a text description will have to do.

Thanks!


Kind Regards,
Cormac

On Wed, 23 Jul 2025 at 20:30, Andy Goryachev <andy.goryachev at oracle.com<mailto:andy.goryachev at oracle.com>> wrote:
Do we have the JBS ticket filed for this issue?

-andy



From: openjfx-dev <openjfx-dev-retn at openjdk.org<mailto:openjfx-dev-retn at openjdk.org>> on behalf of Cormac Redmond <credmond at certak.com<mailto:credmond at certak.com>>
Date: Tuesday, July 22, 2025 at 12:08
To: openjfx-dev at openjdk.org<mailto:openjfx-dev at openjdk.org> <openjfx-dev at openjdk.org<mailto:openjfx-dev at openjdk.org>>
Subject: Re: Bug: ToolBar always using overflow menu whenever a scaled resolution set

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<mailto: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.

[cid:ii_198f855ec54cb971f161]

Can someone fix this?



Kind Regards,
Cormac

On Sat, 19 Jul 2025 at 18:33, Cormac Redmond <credmond at certak.com<mailto: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):

[cid:ii_198f855ec54cb971f162]




Kind Regards,
Cormac

On Sat, 19 Jul 2025 at 11:12, Cormac Redmond <credmond at certak.com<mailto: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%:

[cid:ii_198f855ec54cb971f163]

E.g., this is what a ToolBar always renders if scale is 125%:

[cid:ii_198f855ec54cb971f164]

As compared to what you'd expect (scale set to normal/100%):

[cid:ii_198f855ec54cb971f165]

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<mailto:credmond at certak.com> | m: +353 (0) 86 268 2152 | w: www.certak.com<https://urldefense.com/v3/__http://www.certak.com__;!!ACWV5N9M2RV99hQ!M6R849v9_bV5Pkvo4auFUSshSOXA8efSdEow3bYTGKe4AradVePKerHgau3LuQu4lPlgYX4BohVEyhrG_LJyqA$>




-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250902/5bb1e802/attachment-0001.htm>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 177920 bytes
Desc: image.png
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250902/5bb1e802/image-0006.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 5287 bytes
Desc: image.png
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250902/5bb1e802/image-0007.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 14011 bytes
Desc: image.png
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250902/5bb1e802/image-0008.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 6945 bytes
Desc: image.png
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250902/5bb1e802/image-0009.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 6634 bytes
Desc: image.png
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250902/5bb1e802/image-0010.png>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: image.png
Type: image/png
Size: 14019 bytes
Desc: image.png
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250902/5bb1e802/image-0011.png>


More information about the openjfx-dev mailing list