diff options
author | Wojciech Siewierski <wojciech.siewierski@onet.pl> | 2016-08-18 01:34:05 +0200 |
---|---|---|
committer | Wojciech Siewierski <wojciech.siewierski@onet.pl> | 2016-08-18 01:34:05 +0200 |
commit | 644c8c79271db8cf1bd934b9a80a0215585e46e7 (patch) | |
tree | caa89a927ed4cac62228db381246bd96f3ae4939 /quantum/quantum.c | |
parent | cc7acfb416d446a123d10d2c33c3344f1f684f1b (diff) | |
download | firmware-644c8c79271db8cf1bd934b9a80a0215585e46e7.tar.gz firmware-644c8c79271db8cf1bd934b9a80a0215585e46e7.tar.bz2 firmware-644c8c79271db8cf1bd934b9a80a0215585e46e7.zip |
Fix the process_record_nocache function
This function relies on checking the disable_action_cache static
variable before accessing the layer cache.
Diffstat (limited to 'quantum/quantum.c')
-rw-r--r-- | quantum/quantum.c | 22 |
1 files changed, 12 insertions, 10 deletions
diff --git a/quantum/quantum.c b/quantum/quantum.c index a4c5c2ddb..cb1ba04ff 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c @@ -46,18 +46,20 @@ bool process_record_quantum(keyrecord_t *record) { uint16_t keycode; #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 + keycode = keymap_key_to_keycode(layer_switch_get_layer(key), key); // This is how you use actions here // if (keycode == KC_LEAD) { |