This thread is pretty old now, but I have stumbled over the issue myself using BetterSnapTool and just wanted to chime in with what I’ve found:
Immediately after an initial click that triggers a popup menu, the exitModalState() for that menu gets triggered via the following sequence:
juce::PopupMenu::HelperClasses::MenuWindow::hide(juce::PopupMenu::Item const*, bool)
-[NSWindow(NSWindowAccessibility) accessibilitySubroleAttribute] ()
I don’t exactly know what accessibilitySubroleAttribute is trying to do here, and of course Apple’s docs are pretty sparse on that. But that’s the sequence that forces the popup to immediately get dismissed.