Я создал простое окно X11 и зарегистрировался для событий KeyPress.Когда я нажимаю клавишу «w», я получаю вывод на консоль.Если я продолжу удерживать клавишу «w», а затем отпущу ее, события KeyPress будут срабатывать в течение короткого времени после того, как я отпущу кнопку.Я предполагаю, что это потому, что события KeyPress ставятся в очередь и требуют времени для завершения.
Есть ли способ, чтобы события KeyPress останавливались, когда я отпускаю кнопку?
Яработаю в OpenGL и мне нужно переместить объект, нажав клавишу «w».Проблема заключается в том, что есть задержка между моментом, когда я отпускаю кнопку 'w', и когда объект перестает двигаться.
XMapWindow(display, window);
XSelectInput(display, window, ExposureMask | KeyPressMask);
XEvent e;
while(1) {
XNextEvent(display, &e);
if (e.type == KeyPress) {
printf("KeyPress\n");
char string[25];
KeySym keysym;
XLookupString(&e.xkey, string, 25, &keysym, NULL);
if (keysym == XK_w)
printf("Pressed w key\n");
}
}