Make combos invoke behaviors with locality

Currently the source is hardcoded to central for source local behaviors
This commit is contained in:
Cem Aksoylar 2024-08-09 00:07:21 -07:00
parent 950c2d48d7
commit b19d3d2cbd

View file

@ -291,21 +291,23 @@ static int release_pressed_keys() {
static inline int press_combo_behavior(struct combo_cfg *combo, int32_t timestamp) {
struct zmk_behavior_binding_event event = {
.position = combo->virtual_key_position,
.source = ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL,
.timestamp = timestamp,
};
last_combo_timestamp = timestamp;
return behavior_keymap_binding_pressed(&combo->behavior, event);
return zmk_invoke_behavior_binding(&combo->behavior, event, true);
}
static inline int release_combo_behavior(struct combo_cfg *combo, int32_t timestamp) {
struct zmk_behavior_binding_event event = {
.position = combo->virtual_key_position,
.source = ZMK_POSITION_STATE_CHANGE_SOURCE_LOCAL,
.timestamp = timestamp,
};
return behavior_keymap_binding_released(&combo->behavior, event);
return zmk_invoke_behavior_binding(&combo->behavior, event, false);
}
static void move_pressed_keys_to_active_combo(struct active_combo *active_combo) {