How to prevent reparented window blocking X session?

760 Views Asked by At

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 or 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?

1

There are 1 best solutions below

3
datenwolf On

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