Bug: ToolBar always using overflow menu whenever a scaled resolution set
Kevin Rushforth
kevin.rushforth at oracle.com
Thu Jul 24 14:15:13 UTC 2025
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> 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 <http://www.certak.com>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/openjfx-dev/attachments/20250724/44b05f57/attachment-0001.htm>
-------------- 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/20250724/44b05f57/image-0005.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/20250724/44b05f57/image-0006.png>
-------------- 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/20250724/44b05f57/image-0007.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/20250724/44b05f57/image-0008.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/20250724/44b05f57/image-0009.png>
More information about the openjfx-dev
mailing list