diff --git a/modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp b/modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp index f955855d23..91352d9d66 100644 --- a/modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp +++ b/modules/juce_gui_basics/menus/juce_MenuBarComponent.cpp @@ -241,10 +241,16 @@ void MenuBarComponent::showMenu (int index) auto itemBounds = itemComponent->getBounds(); + const auto callback = [ref = SafePointer (this), index] (int result) + { + if (ref != nullptr) + ref->menuDismissed (index, result); + }; + m.showMenuAsync (PopupMenu::Options().withTargetComponent (this) .withTargetScreenArea (localAreaToGlobal (itemBounds)) .withMinimumWidth (itemBounds.getWidth()), - [this, index] (int result) { menuDismissed (index, result); }); + callback); } } }