From 229b7afcb0aa5e0100280f07f92eb270e34f4356 Mon Sep 17 00:00:00 2001 From: xs5871 Date: Sun, 5 Jun 2022 20:49:46 +0000 Subject: [PATCH] implement faster combo activation --- kmk/modules/combos.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/kmk/modules/combos.py b/kmk/modules/combos.py index 8747968..1ac1b7f 100644 --- a/kmk/modules/combos.py +++ b/kmk/modules/combos.py @@ -111,6 +111,19 @@ class Combos(Module): self._key_buffer.append((int_coord, key, True)) key = None + # Single match left: don't wait on timeout to activate + if len(self._matching) == 1 and not self._matching[0]._remaining: + combo = self._matching.pop(0) + self.activate(keyboard, combo) + if combo._timeout: + keyboard.cancel_timeout(combo._timeout) + combo._timeout = None + for _combo in self._matching: + self.reset_combo(keyboard, _combo) + self._matching = [] + self._key_buffer = [] + self.reset(keyboard) + # Start or reset individual combo timeouts. for combo in self._matching: if combo._timeout: