From 0abef4087beb280c457777fa68f1b65ede9df5ec Mon Sep 17 00:00:00 2001 From: Serge Bazanski <q3k@q3k.org> Date: Tue, 8 Aug 2023 19:10:44 +0200 Subject: [PATCH] py: allow disabling input repeat --- python_payload/st3m/input.py | 17 ++++++++++++++++- 1 file changed, 16 insertions(+), 1 deletion(-) diff --git a/python_payload/st3m/input.py b/python_payload/st3m/input.py index 06a2660073..63b2fd91ae 100644 --- a/python_payload/st3m/input.py +++ b/python_payload/st3m/input.py @@ -72,7 +72,7 @@ class Pressable: def __init__(self, state: bool) -> None: self._state = state self._prev_state = state - self._repeat = RepeatSettings(400, 200) + self._repeat: Optional[RepeatSettings] = RepeatSettings(400, 200) self._pressed_at: Optional[float] = None self._repeating = False @@ -80,6 +80,21 @@ class Pressable: self._ignoring = 0 + def repeat_enable(self, first: int = 400, subsequent: int = 200) -> None: + """ + Enable key repeat functionality. Arguments are amount to wait in ms + until first repeat is emitted and until subsequent repeats are emitted. + + Repeat is enabled by default on Pressables. + """ + self._repeat = RepeatSettings(first, subsequent) + + def repeat_disable(self) -> None: + """ + Disable repeat functionality on this Pressable. + """ + self._repeat = None + def _update(self, ts: int, state: bool) -> None: if self._ignoring > 0: self._ignoring -= 1 -- GitLab