mirror of
https://gitlab.freedesktop.org/libevdev/libevdev.git
synced 2025-12-24 18:10:07 +01:00
We can't allocate in sync_mt_state since it may be called in the signal
handler. So pre-allocate based on the device's number of slots, store that in
the libevdev struct and use it for the sync process.
This fixes a remaining bug with the handling of ABS_MT_TRACKING_ID. If a
device had > MAX_SLOTS and a slot above that limit would start or stop during
a SYN_DROPPED event, the slot would not be synced, and a subsequent touch in
that slot may double-terminate or double-open a touchpoint in the client.
For the effects of that see
commit
|
||
|---|---|---|
| .. | ||
| .gitignore | ||
| Makefile.am | ||
| test-common-uinput.c | ||
| test-common-uinput.h | ||
| test-common.c | ||
| test-common.h | ||
| test-compile-pedantic.c | ||
| test-event-codes.c | ||
| test-event-names.c | ||
| test-int-queue.c | ||
| test-kernel.c | ||
| test-libevdev-events.c | ||
| test-libevdev-has-event.c | ||
| test-libevdev-init.c | ||
| test-link.c | ||
| test-main.c | ||
| test-uinput.c | ||