On Wed, 1 Jul 2026 19:44:43 GMT, Martin Fox <[email protected]> wrote:

>> This PR provides an API for replacing the application menu that JavaFX 
>> places in the system menu bar on macOS. The application menu is the one next 
>> to the Apple menu that is titled with the application's name and contains 
>> the Quit menu item. The JavaFX version of this menu has many limitations so 
>> this PR allows a developer to simply replace it outright.
>> 
>> Technically there’s no reason to restrict this to only one menu so the API 
>> allows the developer to specify an observable list of Menus known as the 
>> common system menus. Like the current application menu the common menus are 
>> present for all JavaFX windows and remain present even if all windows lose 
>> focus. Any per-window menus provided by a MenuBar with useSystemMenuBar set 
>> will appear alongside the common system menus.
>> 
>> In addition the PR provides some calls that allow a developer to implement 
>> the Hide <app name>, Hide Others, and Show All menu items that are expected 
>> in the application menu.
>> 
>> ---------
>> - [x] I confirm that I make this contribution in accordance with the 
>> [OpenJDK Interim AI Policy](https://openjdk.org/legal/ai).
>
> Martin Fox has updated the pull request with a new target base due to a merge 
> or a rebase. The incremental webrev excludes the unrelated changes brought in 
> by the merge/rebase. The pull request contains eight additional commits since 
> the last revision:
> 
>  - Merge remote-tracking branch 'upstream/master' into commonmenus
>  - Tweaked testing utility that searches NSApp.mainMenu, added tests
>  - Merge remote-tracking branch 'upstream/master' into commonmenus
>  - New way of testing system menu bar, updated tests
>  - Merge remote-tracking branch 'upstream/master' into commonmenus
>  - Quick fix for a javadoc issue.
>  - Merge remote-tracking branch 'upstream/master' into commonmenus
>  - Specify a list of menus that are always present in the system menu bar

I should add an additional bit of context (that I had forgotten). On the Mac 
it's expected that an application can remain active with a menu bar even when 
there are no windows open. Currently with a JavaFX app the system menu will 
empty out leaving only the application menu. Scene Builder uses a private API 
to install some default menus that are shown when all the windows go away. This 
PR provides a public API that could be used to cover that case as well.

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

PR Comment: https://git.openjdk.org/jfx/pull/1881#issuecomment-4861041816

Reply via email to