[SOLVED] Mac native menus don't respond to setTicked()


#1

I ran into what I'm quite sure is a bug, since it happens in the JUCE demo app as well as my own application.

In the demo app, go to the "Tabs & Widgets" demo, and set the Look-and-feel menu to "Use Native Menu Bar". Now try selecting back and forth between "Use LookAndFeel_V1" and "Use LookAndFeel_V2". The check mark or tick on those items will never change.

Now, if you're not using a native Mac menu bar, the tick mark will change based on which look and feel you have selected.

The way I understand it, ApplicationCommandTarget::getCommandInfo will get called multiple times, and that is your opportunity to change tick marks, alter the text of a command/menu item, etc. That all seems to work if you use a JUCE menu bar, but not if you're using a native menu bar.

Is there something else I need to do to "kick" the native menu bar into updating itself, or is this just a bug that needs to be fixed? If there is something I need to do, then the demo app needs to do it as well.


#2

Not really a bug in the library, just a minor mistake in the demo app. A menu bar needs to attach itself to the command manager to know when things change. I've fixed this now.


#3

Thank you - this change fixes both the demo app, as well as my own app.