|
|
@ -445,7 +445,8 @@ handleEvents(int timeout) |
|
|
|
{ wl_display_get_fd(display), POLLIN }, |
|
|
|
{ wl_display_get_fd(display), POLLIN }, |
|
|
|
{ _glfw.wl.timerfd, POLLIN }, |
|
|
|
{ _glfw.wl.timerfd, POLLIN }, |
|
|
|
}; |
|
|
|
}; |
|
|
|
char buf[8]; |
|
|
|
ssize_t read_ret; |
|
|
|
|
|
|
|
uint64_t repeats, i; |
|
|
|
|
|
|
|
|
|
|
|
while (wl_display_prepare_read(display) != 0) |
|
|
|
while (wl_display_prepare_read(display) != 0) |
|
|
|
wl_display_dispatch_pending(display); |
|
|
|
wl_display_dispatch_pending(display); |
|
|
@ -479,12 +480,14 @@ handleEvents(int timeout) |
|
|
|
|
|
|
|
|
|
|
|
if (fds[1].revents & POLLIN) |
|
|
|
if (fds[1].revents & POLLIN) |
|
|
|
{ |
|
|
|
{ |
|
|
|
_glfwInputKey(_glfw.wl.keyboardFocus, _glfw.wl.keyboardLastKey, |
|
|
|
read_ret = read(_glfw.wl.timerfd, &repeats, sizeof(repeats)); |
|
|
|
_glfw.wl.keyboardLastScancode, GLFW_REPEAT, |
|
|
|
if (read_ret != 8) |
|
|
|
_glfw.wl.xkb.modifiers); |
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
// Required to mark the fd as clean.
|
|
|
|
for (i = 0; i < repeats; ++i) |
|
|
|
read(_glfw.wl.timerfd, &buf, 8); |
|
|
|
_glfwInputKey(_glfw.wl.keyboardFocus, _glfw.wl.keyboardLastKey, |
|
|
|
|
|
|
|
_glfw.wl.keyboardLastScancode, GLFW_REPEAT, |
|
|
|
|
|
|
|
_glfw.wl.xkb.modifiers); |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
else |
|
|
|
else |
|
|
|