XGrab键
语法
XGrab键(显示,密钥码,修改器,抓取窗口,所有者事件(_E),指针模式,键盘_模式)显示器*显示;整数密钥码;无符号整型修改器;窗口抓取窗口;布尔所有者事件(_E);整数指针模式,键盘_模式;
论据
显示
| 指定到X服务器的连接。 |
密钥码
| 指定KeyCode或任意键. |
修改器
| 指定关键帧遮罩集或任何修改器.掩码是有效密钥掩码位的按位包含OR。 |
抓取窗口
| 指定抓取窗口。 |
所有者事件(_E)
| 指定一个布尔值,该值指示键盘事件照常报告。 |
指针模式
| 指定指针事件的进一步处理。你可以通过抓取模式同步或抓取模式同步. |
键盘_模式
| 指定键盘事件的进一步处理。你可以通过抓取模式同步或Grab模式异步. |
描述
这个XGrabKey()函数在键盘上建立一个被动抓取。未来,主动抓住键盘(至于XGrab键盘()),last-keyboard-grab时间设置为按键的时间(如在按键事件),以及按键如果满足以下所有条件,则报告事件:
- 未抓取键盘和指定键(本身可以是修改键)在逻辑上被按下当指定的修改键在逻辑上关闭时,并且没有其他修改键在逻辑上关闭。
- grab_window是焦点窗口的祖先(或是),或者grabwindow是焦点窗口的后代并包含指针。
- 不存在对同一组合键的被动抓取在grabwindow的任何祖先身上。
其余论点的解释如下XGrab键盘().当键盘释放了指定的键(与修改键的逻辑状态无关)。
请注意,设备的逻辑状态(如客户端应用程序所示)如果设备事件处理被冻结,则可能会延迟物理状态。
的修饰符参数任何修改器相当于向所有人发出请求可能的修饰符组合(包括no的组合修改器)。不要求所有指定的修饰符都具有当前分配的KeyCodes。的keycode参数任意键等同于发布请求所有可能的KeyCode。否则,指定的键码必须位于连接中由min_keycode和max_keycode指定的范围设置,或aBadValue(错误值)错误结果。
如果其他客户发布了XGrabKey()在同一窗口上使用相同的组合键错误访问错误结果。使用时任何修改器或任意键,请求完全失败,和a错误访问错误结果(未建立抓取)如果对任何组合有冲突的抓取。
XGrabKey()可以生成错误访问,BadValue(错误值), 和坏窗口错误。
诊断
错误访问
| 客户端试图释放一个颜色映射条目,该条目它还没有分配。 |
错误访问
| 客户端试图存储为只读颜色地图条目。 |
BadValue(错误值)
| 某些数值超出了请求接受的值范围。除非为参数指定了特定范围,否则定义的完整范围参数的类型被接受。定义为一组的任何参数替代方案可能会产生此错误。 |
坏窗口
| Window参数的值没有命名定义的Window。 |
另请参见
XAllowEvents(),XGrab按钮(),XGrab键盘(),X抓取指针(),XUngrabKey(),"键盘抓取".
克里斯托弗·特隆奇,ch@tronche.com(中文)