[Qt-interest] Problems with QX11Embed(Container|Widget)
Denis Dzyubenko
denis.dzyubenko at trolltech.com
Tue Aug 4 14:08:31 CEST 2009
Hi Louai,
Louai Al-Khanji wrote:
>>> I'm having some trouble using the xembed widgets. For some reason the
>>> client is never visible in the container.
>> The reason is that you never actually show the client. Adding
>> 'xembed.show()' seems to solve your problem.
>>
>
> This is actually one of many things I tried to fix this,
> unsuccessfully. I did just notice that calling show() in the client
> does in fact produce a difference though. I've uploaded a shot of what
> I see here: http://bugi.oulu.fi/~slougi/files/qx11embed.png .
>
> If you look closely, in the upper left corner the gradient is
> different - I think this might be the client window... In any case it
> is not there if I do not call xembed.show().
>
> I'm inclined to think this is a Qt bug. The second post in this thread
> seems to imply an issue on 64-bit platforms:
> http://www.qtforum.org/article/24639/problem-with-qx11embedwidget-qx11embedcontainer.html
> , and indeed I am running 64-bit Linux. Looking through
> src/gui/kernel/qx11embed_x11.cpp there seem to be a number of
> 32-bitisms present, like the assumption in various places that the
> long data type is 32 bits long. For example when the _XEMBED_INFO is
> set the data is passed as two long ints, while the XEmbed protocol
> documents two fields of type CARD32.
ah, you are running in 64bit. Yes indeed there was a bug that affected
QX11Embed* to work properly in this case, however it was fixed[1] some
time ago and the master branch of Qt works fine in this case.
[1] see commit
http://qt.gitorious.org/qt/qt/commit/88a0857ac76c803d4f88204fe74448e140bbf300
--
Denis Dzyubenko
Software Engineer
Nokia, Qt Software
More information about the Qt-interest-old
mailing list