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