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.
-
VST 32 bits: it works fine.
-
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
}
- 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?