From 8c93a33cd3c77ad3296c84a642d5f889fd13fac7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nimish=20G=C3=A5tam?= Date: Sun, 2 Nov 2025 00:17:50 +0100 Subject: [PATCH] making flowtap timer public so it can be used easily with combos (#25731) --- quantum/action_tapping.c | 7 +++++++ quantum/action_tapping.h | 10 ++++++++++ 2 files changed, 17 insertions(+) diff --git a/quantum/action_tapping.c b/quantum/action_tapping.c index b105cd60a9..c2f45ea178 100644 --- a/quantum/action_tapping.c +++ b/quantum/action_tapping.c @@ -883,6 +883,13 @@ static bool flow_tap_key_if_within_term(keyrecord_t *record, uint16_t prev_time) return false; } +// Checks both flow_tap_expired flag and elapsed time to determine +// if the key is within the flow tap term. +bool within_flow_tap_term(uint16_t keycode, keyrecord_t *record) { + uint16_t term = get_flow_tap_term(keycode, record, flow_tap_prev_keycode); + return !flow_tap_expired && TIMER_DIFF_16(record->event.time, flow_tap_prev_time) <= term; +} + // By default, enable Flow Tap for the keys in the main alphas area and Space. // This should work reasonably even if the layout is remapped on the host to an // alt layout or international layout (e.g. Dvorak or AZERTY), where these same diff --git a/quantum/action_tapping.h b/quantum/action_tapping.h index 0cf4aa1200..8220952706 100644 --- a/quantum/action_tapping.h +++ b/quantum/action_tapping.h @@ -169,6 +169,16 @@ uint16_t get_flow_tap_term(uint16_t keycode, keyrecord_t *record, uint16_t prev_ /** Updates the Flow Tap last key and timer. */ void flow_tap_update_last_event(keyrecord_t *record); + +/** + * Checks if the pressed key is within the flow tap term. + * Can be used to avoid triggering combos or other actions within the flow tap term. + * + * @param keycode The keycode of the pressed key. + * @param record The keyrecord of the pressed key. + * @return True if the pressed key is within the flow tap term; false otherwise. + */ +bool within_flow_tap_term(uint16_t keycode, keyrecord_t *record); #endif // FLOW_TAP_TERM #ifdef DYNAMIC_TAPPING_TERM_ENABLE