On Mon, 23 Mar 2026 15:48:21 GMT, Dmitry Markov <[email protected]> wrote:
> On macOS the menuBar with a custom menu item may disappear. For example, once > switching from the menu with custom item to the system menu. > > The method `rebuildUI()` in `MenuBarSkin` class clears the menu first, then > `menuContainsCustomMenuItem()` correctly blocks promotion to the macOS system > menu and prints warning. However `rebuildUI()` returns at line 917: > `isUseSystemMenuBar()` returns true but the menu cannot be installed into > system menu due to `CustomMenuItem`. As a result the menu bar disappears. > > Fix: > The `rebuildUI()` has to ensure that the menu does not contain > `CustomMenuItem` when switching to the system menu. > > On a side note, for the working scenario described in the bug the same > _if-statement_ in `rebuildUI()` woks slightly different: the > `currentMenuBarStage` is not _NULL_ but it no longer maps to this skin as a > result the method does not return earlier and the menu gets rebuilt. The two scenarios described in the ticket work as expected now. There is one more scenario that I am not sure about: 1. launch the reproducer 2. select "Use System Menu" 3. in the system menu, select "Use Custom Menu Item" Since it looks like FX is capable of handling menu updates at runtime, a custom menu item in the system menu should force the menu to go back to the application window. Instead, the system menu now shows an empty item: <img width="254" height="130" alt="Screenshot 2026-03-23 at 10 12 36" src="https://github.com/user-attachments/assets/d6419a92-797c-4428-9bfb-23b59baa596b" /> Should we fix this scenario as well? ------------- PR Comment: https://git.openjdk.org/jfx/pull/2125#issuecomment-4112293296
