Details
-
Bug
-
Resolution: Out of scope
-
Not Evaluated
-
None
-
5.1.0
-
None
-
gentoo linux x86_64 (kernel 3.8.13), xorg-server (1.13.4), icewm (1.2.37), gcc (4.8.1)
Description
If start any qt5 based application on my machine then application starts,
but I don't see any window.
I find out that applications that uses qt 5.0 alpha works fine.
So I bisect the problem and find falty commit:
commit b5bdd31de41cb5e6d6abedce79864fc01d8d4984
Author: Alberto Mardegan <alberto.mardegan@canonical.com>
Date: Wed Dec 12 17:18:28 2012 +0100
Implement XEmbed protocol
...
Here I should note:
1)I use Linux + xorg + icewm
2)qt3 and qt4 works fine as well as gtk+(2.x, 3.x) and so on.
The problem is here:
QXcbWindow::create method:
/* Add XEMBED info; this operation doesn't initiate the embedding. */
long data[] =
;
Q_XCB_CALL(xcb_change_property(xcb_connection(), XCB_PROP_MODE_REPLACE, m_window,
atom(QXcbAtom::_XEMBED_INFO),
atom(QXcbAtom::_XEMBED_INFO),
32, 2, (void *)data));
as I understand we tag every qt window as window that can be embedded,
icewm treats such windows as windows that should NOT be handled as normal windows
(according to comments this workaround for some firefox + flash bug).
So here is the main question: "who is right"
According to xembed spec:
http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html
The window that takes part in embedding must have xembed_info atom.
The author of icewm think that ONLY window that going to be embeded has such atom.
The author of lines above in qt thinks that all windows can have such atom.
But any way this is definitely regression (in compare with qt 3.x and qt 4.x).
May be it is possible to change without modification 3thpary software like icewm,
and may be other not tested by me windows manager?