]> git.donarmstrong.com Git - qmk_firmware.git/blobdiff - tmk_core/common/action.c
Fix up tap_code functionality (#4609)
[qmk_firmware.git] / tmk_core / common / action.c
index ae086474963699369b48476077f0478c7c73063b..456d1e25fe4dad2423adbe847a023c68a76d88b7 100644 (file)
@@ -120,7 +120,7 @@ void process_hand_swap(keyevent_t *event) {
 }
 #endif
 
-#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
+#if !defined(NO_ACTION_LAYER) && !defined(STRICT_LAYER_RELEASE)
 bool disable_action_cache = false;
 
 void process_record_nocache(keyrecord_t *record)
@@ -777,6 +777,7 @@ void register_code(uint8_t code)
     #ifdef MOUSEKEY_ENABLE
       else if IS_MOUSEKEY(code) {
         mousekey_on(code);
+        mousekey_send();
       }
     #endif
 }
@@ -841,10 +842,23 @@ void unregister_code(uint8_t code)
     #ifdef MOUSEKEY_ENABLE
       else if IS_MOUSEKEY(code) {
         mousekey_off(code);
+        mousekey_send();
       }
     #endif
 }
 
+/** \brief Utilities for actions. (FIXME: Needs better description)
+ *
+ * FIXME: Needs documentation.
+ */
+void tap_code(uint8_t code) {
+  register_code(code);
+  #if TAP_CODE_DELAY > 0
+    wait_ms(TAP_CODE_DELAY);
+  #endif
+  unregister_code(code);
+}
+
 /** \brief Utilities for actions. (FIXME: Needs better description)
  *
  * FIXME: Needs documentation.