summary refs log tree commit diff
path: root/quantum/action_tapping.h
diff options
context:
space:
mode:
authorAlbert Y <76888457+filterpaper@users.noreply.github.com>2022-12-12 23:52:22 +0800
committerGitHub <noreply@github.com>2022-12-12 16:52:22 +0100
commitcbabc8dbe6a8476d3082e8bc649d330f87e7b904 (patch)
tree55e73275367047981295d046867d9f70352814c7 /quantum/action_tapping.h
parent8698d109d7c2f4554e0f3c01b017738a0a47f162 (diff)
[Core] Replace Tapping Force Hold feature with Quick Tap Term (#17007)
* Replace Tapping Force Hold feature with Quick Tap Term

* Replace keyboard level TAPPING_FORCE_HOLD with QUICK_TAP_TERM 0

* Deprecate force hold in info_config.json

* Before and after quick tap term unit tests

* Quick tap unit tests iteration

* Keymap config.h correction

* Remove TAPPING_FORCE_HOLD_PER_KEY macros that were missed

* Add two more test cases for quick tap

* Replace TAPPING_FORCE_HOLD with QUICK_TAP_TERM in configs #2

* Replace TAPPING_FORCE_HOLD_PER_KEY with QUICK_TAP_TERM_PER_KEY in configs #2

* Add function declaration for get_quick_tap_term

Co-authored-by: Stefan Kerkmann <karlk90@pm.me>
Diffstat (limited to 'quantum/action_tapping.h')
-rw-r--r--quantum/action_tapping.h13
1 files changed, 12 insertions, 1 deletions
diff --git a/quantum/action_tapping.h b/quantum/action_tapping.h
index bcccc7ac45..c078488c04 100644
--- a/quantum/action_tapping.h
+++ b/quantum/action_tapping.h
@@ -22,6 +22,11 @@ along with this program.  If not, see <http://www.gnu.org/licenses/>.
 #    define TAPPING_TERM 200
 #endif
 
+/* period of quick tap(ms) */
+#if !defined(QUICK_TAP_TERM) || QUICK_TAP_TERM > TAPPING_TERM
+#    define QUICK_TAP_TERM TAPPING_TERM
+#endif
+
 /* tap count needed for toggling a feature */
 #ifndef TAPPING_TOGGLE
 #    define TAPPING_TOGGLE 5
@@ -36,9 +41,9 @@ void     action_tapping_process(keyrecord_t record);
 #endif
 
 uint16_t get_tapping_term(uint16_t keycode, keyrecord_t *record);
+uint16_t get_quick_tap_term(uint16_t keycode, keyrecord_t *record);
 bool     get_permissive_hold(uint16_t keycode, keyrecord_t *record);
 bool     get_ignore_mod_tap_interrupt(uint16_t keycode, keyrecord_t *record);
-bool     get_tapping_force_hold(uint16_t keycode, keyrecord_t *record);
 bool     get_retro_tapping(uint16_t keycode, keyrecord_t *record);
 bool     get_hold_on_other_key_press(uint16_t keycode, keyrecord_t *record);
 
@@ -53,3 +58,9 @@ extern uint16_t g_tapping_term;
 #else
 #    define GET_TAPPING_TERM(keycode, record) (TAPPING_TERM)
 #endif
+
+#ifdef QUICK_TAP_TERM_PER_KEY
+#    define GET_QUICK_TAP_TERM(keycode, record) get_quick_tap_term(keycode, record)
+#else
+#    define GET_QUICK_TAP_TERM(keycode, record) (QUICK_TAP_TERM)
+#endif