fix(split): Add define for local source.
* Add `ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL` and use it consinstently to fix bug w/ local `&reset`, `&bootloader`, etc.
This commit is contained in:
parent
4d55e60adb
commit
fa110488b0
3 changed files with 4 additions and 2 deletions
|
@ -9,6 +9,8 @@
|
|||
#include <zephyr.h>
|
||||
#include <zmk/event_manager.h>
|
||||
|
||||
#define ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL UINT8_MAX
|
||||
|
||||
struct zmk_position_state_changed {
|
||||
uint8_t source;
|
||||
uint32_t position;
|
||||
|
|
|
@ -207,7 +207,7 @@ int zmk_keymap_apply_position_state(uint8_t source, int layer, uint32_t position
|
|||
return invoke_locally(&binding, event, pressed);
|
||||
case BEHAVIOR_LOCALITY_EVENT_SOURCE:
|
||||
#if ZMK_BLE_IS_CENTRAL
|
||||
if (source == UINT_MAX) {
|
||||
if (source == ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL) {
|
||||
return invoke_locally(&binding, event, pressed);
|
||||
} else {
|
||||
return zmk_split_bt_invoke_behavior(source, &binding, event, pressed);
|
||||
|
|
|
@ -51,7 +51,7 @@ void zmk_kscan_process_msgq(struct k_work *item) {
|
|||
LOG_DBG("Row: %d, col: %d, position: %d, pressed: %s", ev.row, ev.column, position,
|
||||
(pressed ? "true" : "false"));
|
||||
ZMK_EVENT_RAISE(new_zmk_position_state_changed(
|
||||
(struct zmk_position_state_changed){.source = UINT8_MAX,
|
||||
(struct zmk_position_state_changed){.source = ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL,
|
||||
.state = pressed,
|
||||
.position = position,
|
||||
.timestamp = k_uptime_get()}));
|
||||
|
|
Loading…
Reference in a new issue