Bug: ToolBar always using overflow menu whenever a scaled resolution set
Cormac Redmond
credmond at certak.com
Wed Jul 23 22:17:48 UTC 2025
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>
wrote:
> Do we have the JBS ticket filed for this issue?
>
>
>
> -andy
>
>
>
>
>
>
>
> *From: *openjfx-dev <openjfx-dev-retn at openjdk.org> on behalf of Cormac
> Redmond <credmond at certak.com>
> *Date: *Tuesday, July 22, 2025 at 12:08
> *To: *openjfx-dev at openjdk.org <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> 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.
>
>
>
>
>
> 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):
>
>
>
>
>
>
>
>
>
>
>
> 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%:
>
>
>
>
>
> E.g., this is what a ToolBar always renders if scale is 125%:
>
>
>
>
>
> As compared to what you'd expect (scale set to normal/100%):
>
>
>
>
>
> 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/20250723/e8b816e0/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/20250723/e8b816e0/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/20250723/e8b816e0/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/20250723/e8b816e0/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/20250723/e8b816e0/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/20250723/e8b816e0/image-0009.png>
More information about the openjfx-dev
mailing list