Rémi Denis-Courmont <r...@remlab.net> wrote:

> As far as I know, loading GTK2 and GTK3 in the same process is not
> supported by the GTK libraries (much like you can't have multiple Qt
> versions). There's nothing for VLC or even gtk3-nocsd to do here.
> 
> You just can't load gtk3-nocsd in a program that uses GTK2.

I'm not trying to load GTK2 and GTK3 in the same process.

What is effectively happening is loading both GTK2 *and* gtk3-nocsd in
the same process, because /etc/X11/Xsession.d/51gtk3-nocsd-detect
explicitly sets LD_PRELOAD (and, AFAIK, this is the only way to load
libgtk3-nocsd.so w/o relinking everything.

Take a look at the output of ldd for a binary linked agains GTK2:

> $ ldd /usr/bin/gtk-demo | grep gtk
>         libgtk3-nocsd.so.0
> => /usr/lib/x86_64-linux-gnu/libgtk3-nocsd.so.0 (0x00007f10b409c000)
>         libgtk-x11-2.0.so.0
> => /usr/lib/x86_64-linux-gnu/libgtk-x11-2.0.so.0 (0x00007f10b3b9e000)

If the above looks incorrect to you, then gtk3-nocsd might be breaking
*any* executable/shared object linked against GTK2.

Regards,
Andrey.

Reply via email to