diff --git a/inputremapper/injection/macros/tasks/mod_tap.py b/inputremapper/injection/macros/tasks/mod_tap.py index ef9c70804..0351c678d 100644 --- a/inputremapper/injection/macros/tasks/mod_tap.py +++ b/inputremapper/injection/macros/tasks/mod_tap.py @@ -22,6 +22,7 @@ import asyncio from collections import deque +from typing import Deque from evdev.ecodes import EV_KEY @@ -64,7 +65,7 @@ class ModTapTask(Task): async def run(self, callback) -> None: tapping_term = self.get_argument("tapping_term").get_value() / 1000 - jamming_asyncio_events = deque() + jamming_asyncio_events: Deque[asyncio.Event] = deque() async def listener(event: InputEvent) -> None: trigger = self.mapping.input_combination[-1] diff --git a/tests/unit/test_macros/test_mod_tap.py b/tests/unit/test_macros/test_mod_tap.py index f9aeebd8d..6914931d0 100644 --- a/tests/unit/test_macros/test_mod_tap.py +++ b/tests/unit/test_macros/test_mod_tap.py @@ -365,20 +365,21 @@ async def wait_for_timeout(self, macro): macro = Parser.parse(macro, self.context, DummyMapping, True) start = time.time() - # Awaiting the macro run will cause it to wait for the tapping_term + # Awaiting macro.run will cause it to wait for the tapping_term. + # When it injects the modifier, release the trigger. macro.press_trigger() await macro.run(lambda *_, **__: macro.release_trigger()) return time.time() - start async def test_tapping_term_configuration_default(self): time_ = await self.wait_for_timeout("mod_tap(a, b)") - # + 3 times 10ms of keycode_pause - self.assertAlmostEqual(time_, 0.23, delta=0.01) + # + 2 times 10ms of keycode_pause + self.assertAlmostEqual(time_, 0.22, delta=0.02) async def test_tapping_term_configuration_100(self): time_ = await self.wait_for_timeout("mod_tap(a, b, 100)") - self.assertAlmostEqual(time_, 0.13, delta=0.01) + self.assertAlmostEqual(time_, 0.12, delta=0.02) async def test_tapping_term_configuration_100_kwarg(self): time_ = await self.wait_for_timeout("mod_tap(a, b, tapping_term=100)") - self.assertAlmostEqual(time_, 0.13, delta=0.01) + self.assertAlmostEqual(time_, 0.12, delta=0.02)