On Tue, 17 Mar 2026 16:06:10 GMT, Jose Pereda <[email protected]> wrote:

>> This PR fixes an issue on macOS with a system menu bar, that happens when a 
>> dialog is shown while a menu from the system menu bar is also showing.
>> 
>> Currently the menubar is removed whenever the stage loses focus, but that 
>> causes a broken state in the menu (as reported in 
>> https://bugs.openjdk.org/browse/JDK-8335541) as the dialog showing prevents 
>> for a clean tear down of the menubar. And even if there were no issues, 
>> there is actually no need of destroying and recreating the same menubar all 
>> over again, since nothing really changed (the dialog doesn't have a menubar 
>> on its own, and shares the very same one from its owner stage).
>> 
>> A test has been added, that fails before this patch and passes with it. 
>> Another minor test has been included, just to give some details about what 
>> happens when a menu titled exactly `"Help"` is added to the system menu bar. 
>> It works before and after the patch.
>> 
>> While adding the test, I noticed that there were failures when the menu was 
>> hidden:
>> 
>> SystemMenuBarHelpMenuTest STANDARD_ERROR
>>     Exception in thread "JavaFX Application Thread" 
>> java.lang.IllegalStateException: Not on FX application thread; currentThread 
>> = JavaFX Application Thread
>>         at 
>> javafx.graphics@27-internal/com.sun.javafx.tk.Toolkit.checkFxUserThread(Toolkit.java:282)
>>         at 
>> javafx.graphics@27-internal/com.sun.javafx.tk.quantum.QuantumToolkit.checkFxUserThread(QuantumToolkit.java:480)
>>         at 
>> javafx.controls@27-internal/javafx.scene.control.Menu.hide(Menu.java:428)
>>         at 
>> javafx.graphics@27-internal/com.sun.javafx.tk.quantum.GlassMenuEventHandler.handleMenuClosed(GlassMenuEventHandler.java:46)
>>         at 
>> javafx.graphics@27-internal/com.sun.glass.ui.Menu.notifyMenuClosed(Menu.java:196)
>> 
>> so I wrapped the calls in `Menu::notifyMenuClosed` and  
>> `Menu::notifyMenuClosed`  with ` Utils::runOnFxThread`.
>
> Jose Pereda has updated the pull request incrementally with one additional 
> commit since the last revision:
> 
>   Address feedback

Works much better now, as expected - the system menu stays up with  the popup 
open, and when minimized.

BTW, I also  could not reproduce the exact scenario in the ticket, instead saw 
this:


 *  BUG macOS 26.3.1:
 *  - click on system menu, the pulldown shows Search Field + About
 *  - dialog appears, the expanded menu pulldown hides
 *  - click on Help, hold -> see About, no search field
 *  - release mouse -> entire menu disappears

tests/system/src/test/java/test/robot/javafx/scene/SystemMenuBarHelpMenuTest.java
 line 243:

> 241:             stage.show();
> 242:         }
> 243: 

minor: extra newline

it's ok to merge though since it's in a test

-------------

Marked as reviewed by angorya (Reviewer).

PR Review: https://git.openjdk.org/jfx/pull/2107#pullrequestreview-3983703487
PR Review Comment: https://git.openjdk.org/jfx/pull/2107#discussion_r2967658230

Reply via email to