From 583d092e105694a3819b1b55ea9caefe46d659a1 Mon Sep 17 00:00:00 2001 From: Jacopo De Simoi Date: Fri, 17 Mar 2017 23:08:22 +0100 Subject: [PATCH] Keep track of which keycodes are reported down --- src/evdev.c | 3 +++ src/evdev.h | 1 + 2 files changed, 4 insertions(+) diff --git a/src/evdev.c b/src/evdev.c index 04f1605..28ee234 100644 --- a/src/evdev.c +++ b/src/evdev.c @@ -448,6 +448,7 @@ AhmStep2(InputInfoPtr pInfo, struct input_event *ev, int value, int code) } } pEvdev->lastValue = value; + pEvdev->ahmDownKey[code] = value; ahmLastEventDevice = pInfo; } @@ -3030,10 +3031,12 @@ EvdevPreInit(InputDriverPtr drv, InputInfoPtr pInfo, int flags) pEvdev->lastValue = 0; for(fromCode = 0; fromCode < 256; fromCode++){ + /* Reset state */ pEvdev->transModCount[fromCode] = 0; pEvdev->transModTable[fromCode] = 0; pEvdev->transModFreeze[fromCode] = 0; pEvdev->ahmDelayTable[fromCode] = 0; + pEvdev->ahmDownKey[fromCode] = 0; } /* set timeout for ahm */ diff --git a/src/evdev.h b/src/evdev.h index db24277..b0f7ac1 100644 --- a/src/evdev.h +++ b/src/evdev.h @@ -208,6 +208,7 @@ typedef struct { int ahmDelayTable[256]; int ahmDelayedCode[2]; + int ahmDownKey[256]; int ahmDelayedKeys; int ahmResetTime;