[LV2] Qt5 plugin UIs and libsuil

David Robillard d at drobilla.net
Thu Mar 2 11:06:03 PST 2017

On Mon, 2017-02-27 at 13:55 +0100, Stefan Westerfeld wrote:
> Ok, so you merged the falkTX Qt5 embedding implementation (not mine).
> Now that
> it is in upstream libsuil I rebuilt Ardour5 with that suil. For
> synthv1
> everything indeed works as expected. For the SpectMorph UI, it
> somewhat works.

No, I merged neither.

> However there is the annoying problem that if you open the SpectMorph
> UI in
> Arodur, resize it to a larger window size, close it and reopen it,
> the
> SpectMorph UI widget will not cover the entire UI space Ardour
> provides, but a
> smaller subarea.
> I also believe that falkTK himself said that his approach would be
> somewhat
> of a hack. It for instance uses raw Xlib functions like XMoveWindow.
> My
> implementation on the other hand tells the Qt5 toolkit to do the
> embedding
> basically like this:
>   wrap->qembed->windowHandle()->setParent (QWindow::fromWinId
> (gtk_socket_get_id (s)));
> which is why I believe it handles all cases properly, because Qt5 is
> doing
> the actual embedding, whereas the falkTX implementation is broken at
> least
> in one case (triggered by SpectMorph).

They both crash 99% of the time in jalv.gtk, the closest thing to a
reference LV2 host there is at the moment, so frankly they're all
garbage anyway as far as I can tell, and would need to be disabled by
default in the next release.

> So after having tested both, I strongly recommend merging my code.

I strongly recommend all you Qt people agree on a solution that works
in whatever cases you care about, submit a patch for it, and I will
happily merge that.  I'm not oscillating between patches in some he-
said she-said game.


More information about the Devel mailing list