diff --git a/app/src/hid_listener.c b/app/src/hid_listener.c index f07d13b3..96fb2a27 100644 --- a/app/src/hid_listener.c +++ b/app/src/hid_listener.c @@ -115,7 +115,9 @@ void mouse_timer_ref() { } void mouse_timer_unref() { - mouse_timer_ref_count -= 1; + if (mouse_timer_ref_count > 0) { + mouse_timer_ref_count -= 1; + } if (mouse_timer_ref_count == 0) { k_timer_stop(&mouse_timer); } @@ -139,6 +141,7 @@ static int hid_listener_mouse_released(const struct zmk_mouse_state_changed *ev) err = zmk_hid_mouse_movement_release(ev->x, ev->y); if (err) { LOG_ERR("Unable to release button"); + mouse_timer_unref(); return err; } mouse_timer_unref();