I have noticed that oxygen transparent has a bug that I have recently fixed in QtCurve. Setting WA_TranslucentBackground can cause Qt to recreate the window and this breaks the XEmbed protocol. Please test for the _XEMBED_INFO property on the window before doing that.
P.S. this only affect Qt4 version since the Qt5 never recreate the window (for now).
Hi, thanks for the report and patch (!)
I'll implement asap and close this bug.
(will need some work, I have changes to oxygen to be merged in transparent first.
Do you have an application on which I can test that the patch works ?
Application? You mean kpartsplugin? Install kpartsplugin and try to open a pdf in a browser I guess?
It's the same bug mentioned on this page (now) with title "Additions to blacklist".
Now I am confused: my first implementation of the patch is not working (no big deal so far)
its different from yours because I'm not using xcb yet to access properties. (will do, but for Qt5/KF5).
But then, using xprop, I never seem to be able to get the _XEMBED_INFO property either on any window. Any idea on when/where/how I can check whether the property is set or not ?
I am not sure how xprop determines which window it gets info from but it it doesn't seem to be the smallest / highest level one under the cursor.
I think what I did was to
1. print window id in the code and use `xprop -id [winid]`
2. use `xwininfo -tree` (I think you can figure out which window it is from the title easily) and find the right window then use `xprop -id`
Note that all of these need to be done without translucent background enabled otherwise the window will be destroyed.
P.S. specification here http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html
Thanks again, very helpfull :)
Maybe you might want consider helping on oxygen-transparent development ;)
Will keep you posted
Git commit 0393469d71eb1d49d4bf06c3ef4c112219e5e947 by Hugo Pereira Da Costa.
Committed on 17/10/2013 at 15:07.
Pushed by hpereiradacosta into branch 'KDE/4.11'.
do not set transparency on windows that have _XEMBED_INFO property set.
M +43 -1 style/oxygenargbhelper.cpp
M +15 -0 style/oxygenargbhelper.h
> P.S. this only affect Qt4 version since the Qt5 never recreate the window (for now).
Actually it does recreate window on screen change. What's more problematic with Qt5 is that it seems that all toplevel windows have _XEMBED_INFO property set, so it'll be hard to detect kpartsplugin this way.