]> git.donarmstrong.com Git - qmk_firmware.git/commitdiff
Make delay for Capslock in Hold-Tap functions configurable (#5497)
authorDrashna Jaelre <drashna@live.com>
Thu, 16 May 2019 17:28:06 +0000 (10:28 -0700)
committerMechMerlin <30334081+mechmerlin@users.noreply.github.com>
Thu, 16 May 2019 17:28:06 +0000 (10:28 -0700)
* Increase delay for Hold-Tap register for CAPSLOCK

Because it seems that the 80ms delay wasn't too much

* Screw it, make the caps delay a define and make it configurable

docs/config_options.md
tmk_core/common/action.c

index 3ef00394dbac8664efe96e33dbe85d0bfa80b2d5..cab3c0747a5b6138dc601beba2d24333707007ad 100644 (file)
@@ -171,6 +171,8 @@ If you define these options you will enable the associated feature, which may in
   * how long for the Combo keys to be detected. Defaults to `TAPPING_TERM` if not defined.
 * `#define TAP_CODE_DELAY 100`
   * Sets the delay between `register_code` and `unregister_code`, if you're having issues with it registering properly (common on VUSB boards). The value is in milliseconds.
+* `#define TAP_HOLD_CAPS_DELAY 200`
+  * Sets the delay for Tap Hold keys (`LT`, `MT`) when using `KC_CAPSLOCK` keycode, as this has some special handling on MacOS.  The value is in milliseconds, and defaults to 200ms if not defined. 
 
 ## RGB Light Configuration
 
index d4d4ac28da79b8db3ebc4b17a4249d179dfd15ab..bb4e66c9c839c9e41286a8197501f3c6254d931b 100644 (file)
@@ -44,6 +44,9 @@ int retro_tapping_counter = 0;
 #include <fauxclicky.h>
 #endif
 
+#ifndef TAP_HOLD_CAPS_DELAY
+#  define TAP_HOLD_CAPS_DELAY 200
+#endif
 /** \brief Called to execute an action.
  *
  * FIXME: Needs documentation.
@@ -518,7 +521,7 @@ void process_action(keyrecord_t *record, action_t action)
                         if (tap_count > 0) {
                             dprint("KEYMAP_TAP_KEY: Tap: unregister_code\n");
                             if (action.layer_tap.code == KC_CAPS) {
-                                wait_ms(80);
+                                wait_ms(TAP_HOLD_CAPS_DELAY);
                             }
                             unregister_code(action.layer_tap.code);
                         } else {
@@ -853,8 +856,13 @@ void unregister_code(uint8_t code)
  */
 void tap_code(uint8_t code) {
   register_code(code);
+  if (code == KC_CAPS) {
+    wait_ms(TAP_HOLD_CAPS_DELAY);
+  }
   #if TAP_CODE_DELAY > 0
+  else {
     wait_ms(TAP_CODE_DELAY);
+  }
   #endif
   unregister_code(code);
 }