diff --git a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm index 4496f07ef2..a0cba6f8cb 100644 --- a/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm +++ b/modules/juce_audio_plugin_client/AU/juce_AU_Wrapper.mm @@ -2023,7 +2023,11 @@ private: WindowRef windowRef = HIViewGetWindow (parentHIView); hostWindow = [[NSWindow alloc] initWithWindowRef: windowRef]; - [hostWindow retain]; + // not really sure why this is needed in older OS X versions + // but JUCE plug-ins crash without it + if ((SystemStats::getOperatingSystemType() & 0xff) < 12) + [hostWindow retain]; + [hostWindow setCanHide: YES]; [hostWindow setReleasedWhenClosed: YES]; diff --git a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.mm b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.mm index 929b31ea47..c510e8fb77 100644 --- a/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.mm +++ b/modules/juce_audio_plugin_client/VST/juce_VST_Wrapper.mm @@ -69,7 +69,7 @@ static pascal OSStatus viewBoundsChangedEvent (EventHandlerCallRef, EventRef, vo static bool shouldManuallyCloseHostWindow() { - return getHostType().isCubase7orLater() || getHostType().isRenoise(); + return getHostType().isCubase7orLater() || getHostType().isRenoise() || ((SystemStats::getOperatingSystemType() & 0xff) >= 12); } #endif