Как предотвратить переоткрытое окно блокировки X сессии?

Я перерисовываю внешнее окно в приложение Qt (XReparentWindow, XMapRaised, XMoveResizeWindow). Это работает, но когда я щелкаю по этому восстановленному окну, система блокируется (без событий мыши или клавиатуры), ожидаемый результат может быть некоторым вводом внутри восстановленного окна или моим приложением.

Попытка встроить, например, gedit и щелкнуть в нем приводит к событиям клавиатуры только в gedit (и даже глобальные горячие клавиши Awesome отключены) и нигде не щелкает мышью (если я не закрываю встроенный gedit с помощью Ctrl+Q).

То же самое, если использовать QX11EmbedContainer. Даже если сделать setEnabled(false) к этому.

Почему он блокируется? Как предотвратить эту блокировку или как отключить обработку ввода для некоторого X-окна?

1 ответ

Переопределение окна в собственное приложение подпадает под спецификацию XEmbed. Если вы прочтете эту спецификацию, вы увидите, что для ее выполнения необходимо проделать дополнительную работу:

http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html

Другие вопросы по тегам