diff options
author | Okke Formsma <okke@formsma.nl> | 2020-11-11 16:40:13 +0100 |
---|---|---|
committer | Pete Johanson <peter@peterjohanson.com> | 2020-11-16 17:19:27 -0500 |
commit | e48a6b659c6da4afd56f2c3e3fa56d291ebf80e4 (patch) | |
tree | b1d4d267a28feb380f7c28df76a006b3070a46fa /app/tests/momentary-layer/4-nested | |
parent | 2871dca9bfce2588e23da0905d7142ef5ff1c1a1 (diff) |
fix momentary layer bug when top layer is not &trans
Key release events released keys on the wrong layer if the 'top layer'
was not &trans above the &mo key.
base <&mo 1>
layer 1 <&kp B>
This was caused by overwriting
`zmk_keymap_active_behavior_layer[position]` after the &mo key was
handled.
Diffstat (limited to 'app/tests/momentary-layer/4-nested')
-rw-r--r-- | app/tests/momentary-layer/4-nested/events.patterns | 3 | ||||
-rw-r--r-- | app/tests/momentary-layer/4-nested/keycode_events.snapshot | 6 | ||||
-rw-r--r-- | app/tests/momentary-layer/4-nested/native_posix.keymap | 39 |
3 files changed, 48 insertions, 0 deletions
diff --git a/app/tests/momentary-layer/4-nested/events.patterns b/app/tests/momentary-layer/4-nested/events.patterns new file mode 100644 index 0000000..08b1e98 --- /dev/null +++ b/app/tests/momentary-layer/4-nested/events.patterns @@ -0,0 +1,3 @@ +s/.*hid_listener_keycode/kp/p +s/.*mo_keymap_binding/mo/p +s/.*keymap_position_state_changed/kp_st/p
\ No newline at end of file diff --git a/app/tests/momentary-layer/4-nested/keycode_events.snapshot b/app/tests/momentary-layer/4-nested/keycode_events.snapshot new file mode 100644 index 0000000..f03e4d5 --- /dev/null +++ b/app/tests/momentary-layer/4-nested/keycode_events.snapshot @@ -0,0 +1,6 @@ +mo_pressed: position 1 layer 1 +mo_pressed: position 0 layer 2 +kp_pressed: usage_page 0x07 keycode 0x05 mods 0x00 +kp_released: usage_page 0x07 keycode 0x05 mods 0x00 +mo_released: position 0 layer 2 +mo_released: position 1 layer 1 diff --git a/app/tests/momentary-layer/4-nested/native_posix.keymap b/app/tests/momentary-layer/4-nested/native_posix.keymap new file mode 100644 index 0000000..0eb77d2 --- /dev/null +++ b/app/tests/momentary-layer/4-nested/native_posix.keymap @@ -0,0 +1,39 @@ +#include <dt-bindings/zmk/keys.h> +#include <behaviors.dtsi> +#include <dt-bindings/zmk/kscan-mock.h> + +/ { + keymap { + compatible = "zmk,keymap"; + label ="Default keymap"; + + default_layer { + bindings = < + &none &mo 1 + &none &none>; + }; + + layer_1 { + bindings = < + &mo 2 &none + &none &none>; + }; + + layer_2 { + bindings = < + &none &none + &kp B &none>; + }; + }; +}; + +&kscan { + events = < + ZMK_MOCK_PRESS(0,1,10) + ZMK_MOCK_PRESS(0,0,10) + ZMK_MOCK_PRESS(1,0,10) + ZMK_MOCK_RELEASE(1,0,10) + ZMK_MOCK_RELEASE(0,0,10) + ZMK_MOCK_RELEASE(0,1,10) + >; +};
\ No newline at end of file |