How to prevent reparented window blocking X session?
I reparent an external window into Qt application (XReparentWindow, XMapRaised, XMoveResizeWindow
). It works, but when I click to that reparented window the system locks (no mouse 开发者_如何学Goor keyboard events), expect of may be some input inside the reparented window or may be my application.
Trying to embed, for example, gedit and clicking into it leads to keyboard events only in gedit (and even global Awesome's hotkeys disabled) and no mouse clicks anywhere (unless I close embedded gedit using Ctrl+Q).
The same if using QX11EmbedContainer. Even if do setEnabled(false)
to it.
Why it locks up? How to prevent this lockup or how to disable input processing for some X window?
Reparenting a window into one own's application is covered by the XEmbed specification. If you read that spec, you'll see, that some additional work is to be done to make this work:
http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html
精彩评论