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. > > 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've re-opened this. I know there's at least one developer out there that's mixing AWT and JavaFX in an unsupported way just so they can add an "About" item to the application menu (using AWT's application menu with JavaFX windows).l Some code as before but I added a facility for testing the system menu code. In MacApplication.java there's a call to find menu items in NSApp.mainMenu so tests can verify that the system menu code is working. I know that this sounds like JavaFX policing itself but it's the best I could come up with; a simple, isolated bit of code that can be used to verify the behavior of a much more complicated chunk of code. I haven't tested it yet but we should also be able to use this to verify the interaction between AWT and JavaFX when both are using their system menu bars. ------------- PR Comment: https://git.openjdk.org/jfx/pull/1881#issuecomment-4859478136
