Как предотвратить переоткрытое окно блокировки 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