Bug Variable size plugin


#1

Hi all,
I’m currently working on a multiple-size plugin. The user can switch between views in real time. It works perfecly on PC but I’ve got problems with the height on Mac.

  1. VST 32 bits: it works fine.

  2. VST 64 bits: (Reaper, Cubase) the window was shifted down.
    I spent some time to find out the problem and finally found a fix in juceVST_Wrapper::childBoundsChanged.
    It might interest some of you:

void childBoundsChanged (Component* child)
        {
            child->setTopLeftPosition (0, 0);

            const int cw = child->getWidth();
            const int ch = child->getHeight();
			
		// RL
		// Shifting issue fix. This sets back the top left corner to its correct position
#if JUCE_MAC
#ifdef __LP64__
			child->getParentComponent()->setTopLeftPosition (0, child->getParentComponent()->getHeight() - ch);
#endif
#endif			
		//

            wrapper.resizeHostWindow (cw, ch);

           #if ! JUCE_LINUX // setSize() on linux causes renoise and energyxt to fail.
            setSize (cw, ch);
           #else
            XResizeWindow (display, (Window) getWindowHandle(), cw, ch);
           #endif

           #if JUCE_MAC
            wrapper.resizeHostWindow (cw, ch);  // (doing this a second time seems to be necessary in tracktion)
           #endif
        }
  1. AU
    The plugin is ok with Logic, but gets also shifted down on Reaper.
    I tried to do something similar in juceAUWrapper.mm without sucess.
    Anyone can help on it?