я схватил ключ с XGrabKey
:Если во время печати и удерживая клавишу схватился, остальные клавиши также «схватился»
int mods = 0;
bool ownerevents = true;
XGrabKey(display, MY_KEYCODE, mods, rootwin, ownerevents, GrabModeAsync, GrabModeAsync);
Он успешно захватывает ключ. В моем примере MY_KEYCODE
- это номер ключа b
. Итак, теперь мой цикл событий подбирается, только если я нажимаю клавишу b
. ОДНАКО, если я удерживаю клавишу b
, а затем нажимаю другие клавиши, они также сообщаются в мой цикл событий и также блокируются, поэтому «схватываются» временно. Я думал попробовать XAllowEvents
в части KeyPressed
, но он не работает.
Есть ли у кого-нибудь идеи о том, как получить другие ключи, в то время как мой захваченный ключ удерживается, чтобы успешно пройти через ungrabbed?
Нет, это невозможно. Как только нажатая клавиша нажата, вся клавиатура захватывается до тех пор, пока ключ не будет отпущен. Что ты пытаешься сделать? –
Спасибо @ н.м. для чтения и комментариев! Как приложения работают там, где они отправляют другой ключ, когда я нажимаю одну клавишу. Например, если я нажму «e», он должен отправить «a». Они отправляют его на «KeyRelease»? – Noitidart
Обычно это делается с переназначением ключа. –