通常,一旦键盘和鼠标事件发生,X server 将它们递送给恰当的客户程序,这个客户程序由窗口和输入焦点所决定。
当鼠标按钮或者键盘按键被剥夺后,事件将被发送到剥夺它们的客户程序而不是正常情况下应该接收到它们的客户程序。如果键盘或者鼠标指针处于异步模式下,后续的鼠标和键盘事件将继续被处理。如果键盘或者鼠标指针处于同步模式,就没有进一步的事件要处理,直到剥夺的客户程序允许事件(参见 XAllowEvents)。在这段时间间隔内,键盘和鼠标指针认为是被冻结的。触发这个剥夺的事件也可以重放。
XGrabKeyboard(disp, DefaultRootWindow(disp), TRUE, GrabModeAsync, GrabModeAsync, CurrentTime);
可是为什么我的事件发送不到除了客户程序以外的其他程序?