我将一个外部窗口重新分配到Qt应用程序(XReparentWindow, XMapRaised, XMoveResizeWindow
(中。它是有效的,但当我点击重新排序的窗口时,系统会锁定(没有鼠标或键盘事件(,可能是重新排序窗口内的一些输入,也可能是我的应用程序。
例如,尝试嵌入gedit并单击它会导致只在gedit中发生键盘事件(甚至禁用了全局Awesome的热键(,并且不会在任何地方单击鼠标(除非我使用Ctrl+Q关闭嵌入的gedit(。
如果使用QX11EmbedContainer也是如此。即使对它做setEnabled(false)
。
为什么它会锁住?如何防止这种锁定或如何禁用某些X窗口的输入处理?
XEmbed规范涵盖了将窗口重新封装到自己的应用程序中。如果你阅读了该规范,你会发现,要使其发挥作用,还需要做一些额外的工作:
http://standards.freedesktop.org/xembed-spec/xembed-spec-latest.html