[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.
--
dr
More information about the Devel
mailing list