From 9b3e0e8043f8b1f8d6d1ea22556441d73bf8b243 Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Wed, 3 Jun 2020 16:21:10 +1000 Subject: [PATCH] tools: per-slot-delta: if a NONE touch gets data, assume it's starting If we have a recording that started after the touch down, let's start that touch on the first x/y position update. Signed-off-by: Peter Hutterer --- tools/libinput-analyze-per-slot-delta.py | 24 ++++++++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) diff --git a/tools/libinput-analyze-per-slot-delta.py b/tools/libinput-analyze-per-slot-delta.py index 06a79e60..bdafeff1 100755 --- a/tools/libinput-analyze-per-slot-delta.py +++ b/tools/libinput-analyze-per-slot-delta.py @@ -227,12 +227,20 @@ def main(argv): else: s.state = SlotState.END elif e.code == libevdev.EV_ABS.ABS_X: - if s.state == SlotState.UPDATE: + # If recording started after touch down + if s.state == SlotState.NONE: + s.state = SlotState.BEGIN + s.dx, s.dy = 0, 0 + elif s.state == SlotState.UPDATE: s.dx = e.value - s.x s.x = e.value s.dirty = True elif e.code == libevdev.EV_ABS.ABS_Y: - if s.state == SlotState.UPDATE: + # If recording started after touch down + if s.state == SlotState.NONE: + s.state = SlotState.BEGIN + s.dx, s.dy = 0, 0 + elif s.state == SlotState.UPDATE: s.dy = e.value - s.y s.y = e.value s.dirty = True @@ -254,12 +262,20 @@ def main(argv): s.dy = 0 s.dirty = True elif e.code == libevdev.EV_ABS.ABS_MT_POSITION_X: - if s.state == SlotState.UPDATE: + # If recording started after touch down + if s.state == SlotState.NONE: + s.state = SlotState.BEGIN + s.dx, s.dy = 0, 0 + elif s.state == SlotState.UPDATE: s.dx = e.value - s.x s.x = e.value s.dirty = True elif e.code == libevdev.EV_ABS.ABS_MT_POSITION_Y: - if s.state == SlotState.UPDATE: + # If recording started after touch down + if s.state == SlotState.NONE: + s.state = SlotState.BEGIN + s.dx, s.dy = 0, 0 + elif s.state == SlotState.UPDATE: s.dy = e.value - s.y s.y = e.value s.dirty = True