RFR: 8359108: Mac - When Swing starts First, native application menu doesn't work for JavaFX
Andy Goryachev
angorya at openjdk.org
Mon Jun 23 20:44:34 UTC 2025
On Wed, 18 Jun 2025 21:29:47 GMT, Phil Race <prr at openjdk.org> wrote:
>> This pull request fixes the system menu bar on Mac when combining windows of Swing and JavaFX.
>>
>> The first issue was to get the native menu bar working simultaneously on Swing and JavaFX, which was done by just returning always true inside the supportsSystemMenu method.
>>
>> The second issue was to remove all system menu items installed by a swing window. This was fixed by checking the system menu bar every time an item is inserted or removed and removing all menu items that are not owned by JavaFX. This check is done on every insert and remove as JavaFX does not have a clear method inside the MenuBarDelegate class that could be called every time the window gets the focus.
>>
>> I tested the fix with two Swing and two JavaFX windows that are run inside the same application and it works without any errors.
>>
>> Co-Author: @FlorianKirmaier
>
> I'm not at all sure this fix is the right thing to do.
> What if Swing removed all menu items that aren't owned by Swing ?
I agree with @prrace and @beldenfox, this looks like the wrong fix.
The application should decide which part of it controls the system menu and coordinate within itself which part supplies and handles the menu items.
-------------
PR Comment: https://git.openjdk.org/jfx/pull/1835#issuecomment-2997882534
More information about the openjfx-dev
mailing list