diff --git a/app/include/zmk/events/layer_state_changed.h b/app/include/zmk/events/layer_state_changed.h index e6c9d93a..0862caa4 100644 --- a/app/include/zmk/events/layer_state_changed.h +++ b/app/include/zmk/events/layer_state_changed.h @@ -12,14 +12,15 @@ struct zmk_layer_state_changed { zmk_keymap_layers_state_t prior_state; + zmk_keymap_layers_state_t state; int64_t timestamp; }; ZMK_EVENT_DECLARE(zmk_layer_state_changed); static inline struct zmk_layer_state_changed_event * -create_layer_state_changed(zmk_keymap_layers_state_t prior_state) { +create_layer_state_changed(zmk_keymap_layers_state_t prior_state, zmk_keymap_layers_state_t state) { - return new_zmk_layer_state_changed( - (struct zmk_layer_state_changed){.prior_state = prior_state, .timestamp = k_uptime_get()}); + return new_zmk_layer_state_changed((struct zmk_layer_state_changed){ + .prior_state = prior_state, .state = state, .timestamp = k_uptime_get()}); } diff --git a/app/src/keymap.c b/app/src/keymap.c index b6c3787c..31d4bca6 100644 --- a/app/src/keymap.c +++ b/app/src/keymap.c @@ -79,7 +79,7 @@ static struct zmk_behavior_binding zmk_sensor_keymap[ZMK_KEYMAP_LAYERS_LEN] static void raise_layer_event(zmk_keymap_layers_state_t prior_state) { LOG_DBG("layer_changed: layer %d, old state %x, state %x", zmk_keymap_highest_layer_active(), prior_state, zmk_keymap_layer_state()); - ZMK_EVENT_RAISE(create_layer_state_changed(prior_state)); + ZMK_EVENT_RAISE(create_layer_state_changed(prior_state, zmk_keymap_layer_state())); } static inline int set_layer_state(uint8_t layer, bool state) {