forked from kofal.net/zmk
fix(pointing): Temp layer threading protection. (#2729)
fix(pointing): Temp layer threading protection. Ensure all layer operations occur on the system work queue thread. Fixes: #2719 fix(pointing): Handle layer events to disable events Make the temp layer input processor propely handle layers getting deactivated externally before the temp layer timeout. Co-authored-by: Nicolas Munnich <98408764+Nick-Munnich@users.noreply.github.com>
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
layer_changed: layer 1 state 1
|
||||
Dispatching handle_layer_state_changed
|
||||
movement_set: Mouse movement set to -1/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
@@ -12,3 +13,4 @@ movement_set: Mouse movement set to -3/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
layer_changed: layer 1 state 0
|
||||
Dispatching handle_layer_state_changed
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
Dispatching handle_position_state_changed
|
||||
Position excluded, continuing
|
||||
layer_changed: layer 1 state 1
|
||||
Dispatching handle_layer_state_changed
|
||||
movement_set: Mouse movement set to -1/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
@@ -17,5 +18,6 @@ Dispatching handle_position_state_changed
|
||||
Dispatching handle_position_state_changed
|
||||
Position not excluded, deactivating layer
|
||||
layer_changed: layer 1 state 0
|
||||
Dispatching handle_layer_state_changed
|
||||
Position excluded, continuing
|
||||
Dispatching handle_position_state_changed
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
Dispatching handle_position_state_changed
|
||||
Position excluded, continuing
|
||||
layer_changed: layer 1 state 1
|
||||
Dispatching handle_layer_state_changed
|
||||
movement_set: Mouse movement set to -1/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
|
||||
@@ -28,6 +28,7 @@ movement_set: Mouse movement set to -1/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
layer_changed: layer 1 state 1
|
||||
Dispatching handle_layer_state_changed
|
||||
movement_set: Mouse movement set to -2/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
@@ -146,3 +147,4 @@ movement_set: Mouse movement set to -9/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
layer_changed: layer 1 state 0
|
||||
Dispatching handle_layer_state_changed
|
||||
|
||||
@@ -0,0 +1,6 @@
|
||||
s/.*hid_mouse_//p
|
||||
s/.*set_layer_state: //p
|
||||
s/.*handle_state_changed_dispatcher: //p
|
||||
s/.*handle_layer_state_changed: //p
|
||||
s/.*handle_position_state_changed: //p
|
||||
s/.*handle_keycode_state_changed: //p
|
||||
@@ -0,0 +1,31 @@
|
||||
layer_changed: layer 1 state 1
|
||||
Dispatching handle_layer_state_changed
|
||||
movement_set: Mouse movement set to -1/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
movement_set: Mouse movement set to -2/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
movement_set: Mouse movement set to -2/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
movement_set: Mouse movement set to -3/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
layer_changed: layer 1 state 0
|
||||
Dispatching handle_layer_state_changed
|
||||
Deactivating layer that was activated by this processor
|
||||
layer_changed: layer 1 state 1
|
||||
Dispatching handle_layer_state_changed
|
||||
movement_set: Mouse movement set to -1/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
movement_set: Mouse movement set to -2/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
movement_set: Mouse movement set to -2/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
movement_set: Mouse movement set to -3/0
|
||||
scroll_set: Mouse scroll set to 0/0
|
||||
movement_set: Mouse movement set to 0/0
|
||||
@@ -0,0 +1,6 @@
|
||||
CONFIG_GPIO=n
|
||||
CONFIG_ZMK_BLE=n
|
||||
CONFIG_LOG=y
|
||||
CONFIG_LOG_BACKEND_SHOW_COLOR=n
|
||||
CONFIG_ZMK_LOG_LEVEL_DBG=y
|
||||
CONFIG_ZMK_POINTING=y
|
||||
@@ -0,0 +1,43 @@
|
||||
|
||||
#include <dt-bindings/zmk/input_transform.h>
|
||||
#include <zephyr/dt-bindings/input/input-event-codes.h>
|
||||
|
||||
#include <behaviors.dtsi>
|
||||
#include <input/processors.dtsi>
|
||||
#include <dt-bindings/zmk/keys.h>
|
||||
#include <dt-bindings/zmk/kscan_mock.h>
|
||||
#include <dt-bindings/zmk/pointing.h>
|
||||
|
||||
&mmv_input_listener {
|
||||
input-processors = <&zip_temp_layer 1 500>;
|
||||
};
|
||||
|
||||
/ {
|
||||
keymap {
|
||||
compatible = "zmk,keymap";
|
||||
label ="Default keymap";
|
||||
|
||||
default_layer {
|
||||
bindings = <
|
||||
&mmv MOVE_LEFT &mmv MOVE_UP
|
||||
&mo 1 &none
|
||||
>;
|
||||
};
|
||||
|
||||
mkp_layer {
|
||||
bindings = <&mkp LCLK &mkp RCLK &trans &trans>;
|
||||
};
|
||||
};
|
||||
};
|
||||
|
||||
|
||||
&kscan {
|
||||
events = <
|
||||
ZMK_MOCK_PRESS(0,0,100)
|
||||
ZMK_MOCK_RELEASE(0,0,150)
|
||||
ZMK_MOCK_PRESS(1,0,100)
|
||||
ZMK_MOCK_RELEASE(1,0,100)
|
||||
ZMK_MOCK_PRESS(0,0,100)
|
||||
ZMK_MOCK_RELEASE(0,0,150)
|
||||
>;
|
||||
};
|
||||
Reference in New Issue
Block a user