diff options
Diffstat (limited to 'quantum/keymap_common.c')
| -rw-r--r-- | quantum/keymap_common.c | 13 | 
1 files changed, 11 insertions, 2 deletions
| diff --git a/quantum/keymap_common.c b/quantum/keymap_common.c index a91b2a0b36..c1940f0fd3 100644 --- a/quantum/keymap_common.c +++ b/quantum/keymap_common.c @@ -148,6 +148,15 @@ action_t action_for_keycode(uint16_t keycode) {  // translates key to keycode  __attribute__((weak)) uint16_t keymap_key_to_keycode(uint8_t layer, keypos_t key) { -    // Read entire word (16bits) -    return pgm_read_word(&keymaps[(layer)][(key.row)][(key.col)]); +    if (key.row < MATRIX_ROWS && key.col < MATRIX_COLS) { +        return pgm_read_word(&keymaps[layer][key.row][key.col]); +    } +#ifdef ENCODER_MAP_ENABLE +    else if (key.row == KEYLOC_ENCODER_CW && key.col < NUM_ENCODERS) { +        return pgm_read_word(&encoder_map[layer][key.col][0]); +    } else if (key.row == KEYLOC_ENCODER_CCW && key.col < NUM_ENCODERS) { +        return pgm_read_word(&encoder_map[layer][key.col][1]); +    } +#endif // ENCODER_MAP_ENABLE +    return KC_NO;  } | 
