Skip to content

Commit

Permalink
Fix layer tap interrupted
Browse files Browse the repository at this point in the history
  • Loading branch information
xs5871 committed Mar 13, 2023
1 parent 878fe0d commit 4ce29ed
Show file tree
Hide file tree
Showing 3 changed files with 21 additions and 4 deletions.
2 changes: 1 addition & 1 deletion kmk/kmk_keyboard.py
Original file line number Diff line number Diff line change
Expand Up @@ -197,7 +197,7 @@ def _process_resume_buffer(self):
key = ksf.key

# Handle any unaccounted-for layer shifts by looking up the key resolution again.
if ksf.int_coord in self._coordkeys_pressed.keys():
if ksf.int_coord is not None:
key = self._find_key_in_map(ksf.int_coord)

# Resume the processing of the key event and update the HID report
Expand Down
2 changes: 1 addition & 1 deletion kmk/modules/oneshot.py
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,7 @@ def process_key(self, keyboard, current_key, is_pressed, int_coord):
elif state.activated == ActivationType.INTERRUPTED:
if is_pressed:
send_buffer = True
self.key_buffer.insert(0, (0, key, False))
self.key_buffer.insert(0, (None, key, False))

if send_buffer:
self.key_buffer.append((int_coord, current_key, is_pressed))
Expand Down
21 changes: 19 additions & 2 deletions tests/test_layers.py
Original file line number Diff line number Diff line change
Expand Up @@ -10,8 +10,12 @@ def setUp(self):
self.kb = KeyboardTest(
[Layers()],
[
[KC.N0, KC.LM(1, KC.LCTL)],
[KC.A, KC.B],
[
KC.N0,
KC.LM(1, KC.LCTL),
KC.LT(1, KC.N2, tap_interrupted=True, prefer_hold=True),
],
[KC.A, KC.B, KC.C],
],
debug_enabled=False,
)
Expand All @@ -23,6 +27,19 @@ def test_layermod(self):
[{KC.LCTL}, {KC.LCTL, KC.A}, {KC.A}, {}],
)

def test_layertap(self):
self.kb.test(
'Layertap roll',
[(2, True), (0, True), (2, False), (0, False)],
[{KC.N2}, {KC.N0, KC.N2}, {KC.N0}, {}],
)

self.kb.test(
'Layertap tap interrupted',
[(2, True), (0, True), (0, False), (2, False)],
[{KC.A}, {}],
)


if __name__ == '__main__':
unittest.main()

0 comments on commit 4ce29ed

Please sign in to comment.