diff --git a/modules/juce_gui_basics/native/juce_NSViewComponentPeer_mac.mm b/modules/juce_gui_basics/native/juce_NSViewComponentPeer_mac.mm index e23f36d04c..da5277063c 100644 --- a/modules/juce_gui_basics/native/juce_NSViewComponentPeer_mac.mm +++ b/modules/juce_gui_basics/native/juce_NSViewComponentPeer_mac.mm @@ -2333,9 +2333,14 @@ struct JuceNSViewClass final : public NSViewComponentPeerWrapperinPerformKeyEquivalent, true }; - const auto ref = owner->safeComponent; + const auto prev = std::exchange (owner->inPerformKeyEquivalent, true); + + const ScopeGuard scope { [&ref, owner, prev] + { + if (ref != nullptr) + owner->inPerformKeyEquivalent = prev; + } }; if (owner->sendEventToInputContextOrComponent (ev)) {