什么XWindow属性可以阻止窗口获得焦点,同时让它接收鼠标事件?

时间:2011-12-23 01:09:43

标签: python x11 xlib clutter

我正在用python编写一个屏幕键盘,杂乱无章。我已经获得了ClutterStage的XWindow对象,但我找不到任何阻止窗口窃取焦点的属性。基本上,它需要接受鼠标事件(点击,动作等),而不是从它试图输入的窗口中窃取键盘焦点。任何想法? :)

2 个答案:

答案 0 :(得分:1)

通过输入传递在X11上工作的方式,这不可能发生:X11窗口必须具有焦点才能接收输入事件 - 换句话说:事件仅传递到聚焦窗口。

例如,GTK +中的输入方法和可访问性支持依赖于工具包通过特定的API(分别为IM和ATK)向另一个进程发送和接收数据。 GNOME中的所有虚拟键盘都使用任一种处理输入事件的方法。

在纯X11上,您可以使用XTest扩展API将事件从虚拟键盘发送到调用它的应用程序。

答案 1 :(得分:1)

您希望将WM_HINTS属性中的输入提示设置为false,而不是添加WM_TAKE_FOCUS属性。这将确保窗口管理器永远不会将键盘焦点转移到您的窗口,但不会阻止其他事件。见ICCCM第4.1.7节。

http://tronche.com/gui/x/icccm/sec-4.html#s-4.1.7