浏览代码

Merge pull request #647 from Vifon/process_record_nocache-fix

Fix the process_record_nocache function
Jack Humbert 8 年之前
父节点
当前提交
39a95897bc
共有 1 个文件被更改,包括 12 次插入10 次删除
  1. 12 10
      quantum/quantum.c

+ 12 - 10
quantum/quantum.c

@@ -46,18 +46,20 @@ bool process_record_quantum(keyrecord_t *record) {
   uint16_t keycode;
   uint16_t keycode;
 
 
   #if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
   #if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
-    uint8_t layer;
+    /* TODO: Use store_or_get_action() or a similar function. */
+    if (!disable_action_cache) {
+      uint8_t layer;
 
 
-    if (record->event.pressed) {
-      layer = layer_switch_get_layer(key);
-      update_source_layers_cache(key, layer);
-    } else {
-      layer = read_source_layers_cache(key);
-    }
-    keycode = keymap_key_to_keycode(layer, key);
-  #else
-    keycode = keymap_key_to_keycode(layer_switch_get_layer(key), key);
+      if (record->event.pressed) {
+        layer = layer_switch_get_layer(key);
+        update_source_layers_cache(key, layer);
+      } else {
+        layer = read_source_layers_cache(key);
+      }
+      keycode = keymap_key_to_keycode(layer, key);
+    } else
   #endif
   #endif
+    keycode = keymap_key_to_keycode(layer_switch_get_layer(key), key);
 
 
     // This is how you use actions here
     // This is how you use actions here
     // if (keycode == KC_LEAD) {
     // if (keycode == KC_LEAD) {