From d63689003f72e0f0a8d2fe48a487f283b042aecb Mon Sep 17 00:00:00 2001 From: Peter Hutterer Date: Mon, 16 Dec 2024 11:52:18 +1000 Subject: [PATCH] tools: only warn once about our lack of support for multiple fingers Part-of: --- tools/libinput-measure-touch-size.py | 13 +++++++++---- tools/libinput-measure-touchpad-pressure.py | 13 +++++++++---- tools/libinput-measure-touchpad-tap.py | 12 ++++++++---- 3 files changed, 26 insertions(+), 12 deletions(-) diff --git a/tools/libinput-measure-touch-size.py b/tools/libinput-measure-touch-size.py index 43f14cda..6e01740a 100755 --- a/tools/libinput-measure-touch-size.py +++ b/tools/libinput-measure-touch-size.py @@ -206,6 +206,8 @@ class Device(libevdev.Device): self.sequences = [] self.touch = Touch(0, 0) + self.warned = False + def find_touch_device(self): context = pyudev.Context() for device in context.list_devices(subsystem="input"): @@ -259,10 +261,13 @@ class Device(libevdev.Device): libevdev.EV_KEY.BTN_TOOL_QUINTTAP, ] if event.code in tapcodes and event.value > 0: - print( - "\rThis tool cannot handle multiple fingers, " "output will be invalid", - file=sys.stderr, - ) + if not self.warned: + self.warned = True + print( + "\rThis tool cannot handle multiple fingers, " + "output will be invalid", + file=sys.stderr, + ) def handle_abs(self, event): if event.matches(libevdev.EV_ABS.ABS_MT_TRACKING_ID): diff --git a/tools/libinput-measure-touchpad-pressure.py b/tools/libinput-measure-touchpad-pressure.py index 5d145fc3..f4babe1c 100755 --- a/tools/libinput-measure-touchpad-pressure.py +++ b/tools/libinput-measure-touchpad-pressure.py @@ -293,10 +293,15 @@ def handle_key(device, event): libevdev.EV_KEY.BTN_TOOL_QUINTTAP, ] if event.code in tapcodes and event.value > 0: - print( - "\r\033[2KThis tool cannot handle multiple fingers, " - "output will be invalid" - ) + try: + if handle_key.warned: + return + except AttributeError: + handle_key.warned = True + print( + "\r\033[2KThis tool cannot handle multiple fingers, " + "output will be invalid" + ) def handle_abs(device, event): diff --git a/tools/libinput-measure-touchpad-tap.py b/tools/libinput-measure-touchpad-tap.py index c33acfc7..3719228f 100755 --- a/tools/libinput-measure-touchpad-tap.py +++ b/tools/libinput-measure-touchpad-tap.py @@ -100,6 +100,7 @@ class Device(libevdev.Device): raise InvalidDeviceError("device does not have BTN_TOUCH") self.touches = [] + self.warned = False def _find_touch_device(self): context = pyudev.Context() @@ -141,10 +142,13 @@ class Device(libevdev.Device): libevdev.EV_KEY.BTN_TOOL_QUINTTAP, ] if event.code in tapcodes and event.value > 0: - error( - "\rThis tool cannot handle multiple fingers, " "output will be invalid" - ) - return + if not self.warned: + self.warned = True + error( + "\rThis tool cannot handle multiple fingers, " + "output will be invalid" + ) + return if event.matches(libevdev.EV_KEY.BTN_TOUCH): self.handle_btn_touch(event) -- 2.34.1