~ruther/qmk_firmware

a5cdc3aab1c430916eae66d4d9d751808613e700 — Wojciech Siewierski 9 years ago 73cb877
Expose the pressed_actions_cache global variable
2 files changed, 4 insertions(+), 4 deletions(-)

M tmk_core/common/action.c
M tmk_core/common/action.h
M tmk_core/common/action.c => tmk_core/common/action.c +3 -4
@@ 55,6 55,7 @@ void action_exec(keyevent_t event)

#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
bool disable_action_cache = false;
action_t pressed_actions_cache[MATRIX_ROWS][MATRIX_COLS];

void process_action_nocache(keyrecord_t *record)
{


@@ 78,16 79,14 @@ void process_action_nocache(keyrecord_t *record)
action_t store_or_get_action(bool pressed, keypos_t key)
{
#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
    static action_t pressed_actions[MATRIX_ROWS][MATRIX_COLS];

    if (disable_action_cache) {
        return layer_switch_get_action(key);
    }

    if (pressed) {
        pressed_actions[key.row][key.col] = layer_switch_get_action(key);
        pressed_actions_cache[key.row][key.col] = layer_switch_get_action(key);
    }
    return pressed_actions[key.row][key.col];
    return pressed_actions_cache[key.row][key.col];
#else
    return layer_switch_get_action(key);
#endif

M tmk_core/common/action.h => tmk_core/common/action.h +1 -0
@@ 61,6 61,7 @@ void action_function(keyrecord_t *record, uint8_t id, uint8_t opt);
/* Utilities for actions.  */
#if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS)
extern bool disable_action_cache;
extern action_t pressed_actions_cache[MATRIX_ROWS][MATRIX_COLS];
#endif
void process_action_nocache(keyrecord_t *record);
void process_action(keyrecord_t *record);