如果按住抓取键的同时,其他键也是"grabbed"
If while press and holding grabbed key, other keys are also "grabbed"
我用 XGrabKey
抢到了一把钥匙:
int mods = 0;
bool ownerevents = true;
XGrabKey(display, MY_KEYCODE, mods, rootwin, ownerevents, GrabModeAsync, GrabModeAsync);
成功抢到钥匙。在我的示例中,MY_KEYCODE
用于键 b
。所以现在我的事件循环只有在我按下 b
键时才会启动。但是,如果我按住 b
键,然后按其他键,这些键也会被报告到我的事件循环中,并且也会被阻止,所以 "grabbed" 暂时。我想在 KeyPressed
部分尝试 XAllowEvents
,但它不起作用。
有没有人知道如何在我抓住的钥匙被抓住的情况下获得其他钥匙,以成功通过未抓住的?
不可能如你所愿。一旦按下抓取的键,整个键盘就会被抓取,直到松开该键。
如果您想以编程方式全局替换绑定到某个键的键符号,这通常通过键重新映射来完成。参见 XChangeKeyboardMapping
和 XkbChangeMap
。
如果您只是想永久地重新映射一个密钥而不关心它是如何完成的,您可能想要 write/modify 一个配置文件而不用担心编程。参见 xmodmap
和 xkbcomp
。
我用 XGrabKey
抢到了一把钥匙:
int mods = 0;
bool ownerevents = true;
XGrabKey(display, MY_KEYCODE, mods, rootwin, ownerevents, GrabModeAsync, GrabModeAsync);
成功抢到钥匙。在我的示例中,MY_KEYCODE
用于键 b
。所以现在我的事件循环只有在我按下 b
键时才会启动。但是,如果我按住 b
键,然后按其他键,这些键也会被报告到我的事件循环中,并且也会被阻止,所以 "grabbed" 暂时。我想在 KeyPressed
部分尝试 XAllowEvents
,但它不起作用。
有没有人知道如何在我抓住的钥匙被抓住的情况下获得其他钥匙,以成功通过未抓住的?
不可能如你所愿。一旦按下抓取的键,整个键盘就会被抓取,直到松开该键。
如果您想以编程方式全局替换绑定到某个键的键符号,这通常通过键重新映射来完成。参见 XChangeKeyboardMapping
和 XkbChangeMap
。
如果您只是想永久地重新映射一个密钥而不关心它是如何完成的,您可能想要 write/modify 一个配置文件而不用担心编程。参见 xmodmap
和 xkbcomp
。