From ae797e4573b11c0f78e8504c70ed64011cdbc87f Mon Sep 17 00:00:00 2001 From: Stelard Actek Date: Sat, 21 Sep 2024 00:06:07 +1000 Subject: [PATCH] Repeat all pending events, not just the latest one, to prevent axis sticking --- virtjs.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/virtjs.c b/virtjs.c index f08f1c8..f964964 100644 --- a/virtjs.c +++ b/virtjs.c @@ -115,8 +115,9 @@ int main(int argc, char *argv[]) if (fds[0].revents & POLLIN) { struct input_event ev; rc = libevdev_next_event(real, LIBEVDEV_READ_FLAG_BLOCKING, &ev); - if (rc == 0) { + while (rc == 0) { write(uifd, &ev, sizeof(ev)); + rc = libevdev_next_event(real, LIBEVDEV_READ_FLAG_BLOCKING, &ev); } } if (fds[1].revents & (POLLERR | POLLHUP)) {