I have:
- NSStatusItem with a custom view (scrolling text in a secondary thread), with the secondary thread updating the internal state and notifying the main thread with setNeedsDisplay.
- On mouseDown, an NSMenu pops up.
- However, if any NSMenuItem in the NSMenu is selected, or if a second mouseDown is detected and the NSMenu fades, the scrolling text animation stutters.
It seems as though the NSMenu default view blocks the main thread while doing its animations. I've tested this by having the secondary thread output time_since_last_loop versus the drawRect: of the view (which is the main thread), and only the drawRect shows the stutter. drawRect of the custom view drops from ~30 fps to 5 for a few frames.
Any way to have NSMenu animations non-blocking, or concurrent with the drawRect of the custom view?