Issue with JUCE_COREGRAPHICS_RENDER_WITH_MULTIPLE_PAINT_CALLS in Logic Pro

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.

NewProject.zip (5.9 KB)

screen_recordings.zip (303.3 KB)

Please try with JUCE 7.0.3 - there have been a handful of improvements that may have fixed things.

Currently on 7.0.5, issue is exactly as initially described. Please take a look, I’ve provided 100% reproducible code.

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().

1 Like

Thanks for the feedback.
Is that related to BUG? Popup Menu Background and Logic Silicon - #35 by reuk

Insofar as both issues involve unexpected behaviour when opening secondary windows, yes.

We’ve just merged a fix to develop:

Please try updating and let us know if the issue is not resolved, or if you encounter new issues as a result of the change.

The previous change introduced some new glitches when resizing in windows with native borders.

The following change seems to resolve the original issue, along with the new glitches:

1 Like