diff --git a/modules/juce_audio_plugin_client/utility/juce_WindowsHooks.h b/modules/juce_audio_plugin_client/utility/juce_WindowsHooks.h index b1038f7d26..ebfaf994f6 100644 --- a/modules/juce_audio_plugin_client/utility/juce_WindowsHooks.h +++ b/modules/juce_audio_plugin_client/utility/juce_WindowsHooks.h @@ -34,6 +34,7 @@ namespace { static HHOOK mouseWheelHook = 0, keyboardHook = 0; static int numHookUsers = 0; + static bool keyboardHookReentrant = false; struct WindowsHooks { @@ -89,6 +90,11 @@ namespace static LRESULT CALLBACK keyboardHookCallback (int nCode, WPARAM wParam, LPARAM lParam) { + if (keyboardHookReentrant) + return 1; + + ScopedValueSetter setter (keyboardHookReentrant, true, false); + MSG& msg = *(MSG*) lParam; if (nCode == HC_ACTION && offerKeyMessageToJUCEWindow (msg))