I have just heard from Hermann Seib (savihost developer). Once I had informed him of the problem he started rightaway to work it out. He has already created a fix for the issue that will be made available with the next release of the software.
Here is some background information he gave me (with english translation by me)
You might find it useful since Juce should not have any problems regardless of how many editors are attached to the processor. (that is at least what I understood from reading the documentation.)
[Quote]
(…) das Problem liegt zwar teilweise bei JUCE, tritt aber nur in einer sehr speziellen Kombination auf, die SAVIHost verwendete.
While the issue is partially with Juce, it will only show up under a certain circumstances, that were used by SAVIHost
Pseudocode:
Vst::IEditController *editController;
Vst::IPlugView *pVew, *pViewTemp;
pView = editController->createView(Vst::ViewType::kEditor);
pView->setFrame(<SAVIHost Host Interface>);
ViewRect vr;
pView->getSize(&vr);
...
pViewTemp = editController->createView(Vst::ViewType::kEditor);
pViewTemp->release();
...
pView->attached(<SAVIHost client window handle>);
Also zwischendurch mal eine temporäre editor view angelegt und wieder weggeworfen und dann mit der ersten View weitergearbeitet. Das dürfte JUCE ziemlich durcheinander bringen.
Also zwischendurch mal eine temporäre editor view angelegt und wieder weggeworfen und dann mit der ersten View weitergearbeitet. Das dürfte JUCE ziemlich durcheinander bringen.
In short: Savihost used to create a temporary view that was disposed of rightaway and then it continued to work with the original view
Nachdem der einzige Zweck dieser temporären view ist, herauszufinden, ob das PlugIn überhaupt einen Editor öffnen kann, prüfe ich jetzt vorab, ob schon eine view da ist (die ich vorher zum Ermitteln der Fenstergröße bereits angelegt habe); wenn ja, brauche ich die temporäre view nicht anzulegen, weil eh alles klar ist.
Since the only purpose of the of that temporary view is to find out wether the plugin is able to create an editor I am now checking in advance if one is already present. (that is beeing created anyway in order to get the editor panel size) ; if so there is no point in creating another temporary view.
… und das war’s im Prinzip.
… and that’s it.
Nota bene: VST3 enthält weder in Dokumentation noch Source Code irgendwelche Hinweise, dass das Anlegen mehrerer Editor Views schlecht wäre. Besonders sinnvoll ist’s halt normalerweise nicht … und JUCE scheint nicht damit zu rechnen. Eins der durch die “perfekte” Steinberg-Dokumentation möglichen Interpretationsprobleme halt.
Nota Bene: in VST3 there is nowhere a hint neither in documentation nor in the code that rules out the use of multiple editor views. Under normal circumstances it does not make much sense … and JUCE does not seem to handle it. (…)
[/Quote]