I’m observing a weird graphical glitch on ComboBoxes in plugins built with JUCE 7.0.2 in Logic Pro.
This is all happening with JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS=1 option (which is critical for my plugin, due to extremely laggy rendering otherwise), which switches to the metal rendered - switching this option to zero fixes the glitch.
The glitch is basically - when you open a combo box options menu (showPopup()), moving the mouse over the options doesn’t highlight them straight away. I’m attaching screen recordings of the behaviour with and without the metal rendered, as well as a minimal juce projects which reproduces the issue 100% (on my setup m1 macbook air, monterey).
Note that the issue happens only in Logic Pro - the same plugin (even the AU version) loaded in REAPER behaves correctly.
From the example I provide the issue doesn’t seem too bad, but in my actual plugin I have sub-menus when I open the combo box - those sub-menus open and get painted, but the root element is still not highlighted.
Let me know if I can provide any other information.
Thanks, I can reproduce the problem. I have a potential workaround, but there are lots of fiddly interactions in this area so I’m a bit worried about breaking some other usecase. Hopefully we’ll be able to get this merged soon, although it might take a while if we discover new problems.
In case you were unaware, opening additional windows in AU plugins (including tooltips and popup menus) is generally not supported, even by Apple. There’s a bit more info here:
The important bit is this quote from the Apple docs:
If custom, free-floating dialogs don’t work as you expect, add them as a subwindow to the main window — this includes custom tooltip and drop-down menu implementations.
Although I hope we’ll be able to fix the issue you raised, I’d strongly recommend that you avoid opening secondary windows in AU plugins where possible.
In JUCE, you can force PopupMenus to display inside the main editor window by overriding getParentComponentForMenuOptions().