1

我将一个外部窗口重新设置为 Qt 应用程序 ( XReparentWindow, XMapRaised, XMoveResizeWindow)。它可以工作,但是当我单击该重新父窗口时系统锁定(没有鼠标或键盘事件),期望可能是重新父窗口内的一些输入,或者可能是我的应用程序。

例如,尝试嵌入 gedit 并单击它会导致仅在 gedit 中发生键盘事件(甚至禁用全局 Awesome 的热键),并且在任何地方都没有鼠标点击(除非我使用 Ctrl+Q 关闭嵌入式 gedit)。

如果使用 QX11EmbedContainer 也一样。即使这样做setEnabled(false)

为什么会被锁?如何防止这种锁定或如何禁用某些 X 窗口的输入处理?

4

1 回答 1

0

XEmbed 规范涵盖了将窗口重新设置为自己的应用程序的父级。如果您阅读了该规范,您会发现需要做一些额外的工作才能完成这项工作:

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

于 2011-10-13T12:25:16.517 回答