[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