Fix input-linux reading from device
commit1684907c924140be00950a8a17740377f477a6a6
authorJavier Celaya <jcelaya@gmail.com>
Mon, 27 Mar 2017 18:26:24 +0000 (27 20:26 +0200)
committerGerd Hoffmann <kraxel@redhat.com>
Mon, 3 Apr 2017 09:44:58 +0000 (3 11:44 +0200)
tree67986bb3c625c54b34b2755e80fa596711022f2d
parent243afe858b95765b98d16a1f0dd50dca262858ad
Fix input-linux reading from device

The evdev devices in input-linux.c are read in blocks of one whole
event. If there are not enough bytes available, they are discarded,
instead of being kept for the next read operation. This results in
lost events, of even non-working devices.

This patch keeps track of the number of bytes to be read to fill up
a whole event, and then handle it.

Changes from v1 to v2:
- Fix: Calculate offset on each iteration

Changes from v2 to v3:
- Fix coding style
- Store offset instead of bytes to be read

Signed-off-by: Javier Celaya <jcelaya@gmail.com>
Message-id: 20170327182624.2914-1-jcelaya@gmail.com
Signed-off-by: Gerd Hoffmann <kraxel@redhat.com>
ui/input-linux.c