Workaround for bug in Wavelab 7 Mac 64 Vst no gui


#1

For those that didn’t even know it yet Wavelab7 64-bit won’t display the vst plugin gui. The reason is that Wavelab 7 fails to initialise the rectangle passed into the plugin even though the plugin reports the correct size the rectangle should be just prior to this call. A zero size rectangle is passed in, and code in Juce then, I think trying to handle plugin headers added by some hosts, offsets the plugin gui to a negative position. I have contacted Philippe who writes Wavelab and asked him to fix this. As a defensive measure for “bad” hosts in the future you may also want to add this to the juce_VST_Wrapper.mm, which is a fix suggested by Jules that I have checked works fine:

void* attachComponentToWindowRef (Component* comp, void* windowRef)
{
    JUCE_AUTORELEASEPOOL

  #if JUCE_64BIT
    NSView* parentView = (NSView*) windowRef;

   #if JucePlugin_EditorRequiresKeyboardFocus
    comp->addToDesktop (0, parentView);
   #else
    comp->addToDesktop (ComponentPeer::windowIgnoresKeyPresses, parentView);
   #endif
   
    if ([parentView frame].size.height == 0)
    {
        [((NSView*) comp->getWindowHandle()) setFrameOrigin: NSZeroPoint];
    }
           
    comp->setVisible (true);
    comp->toFront (false);

    [[parentView window] setAcceptsMouseMovedEvents: YES];
    return parentView;
...