From: tmk Date: Mon, 3 Feb 2020 03:36:26 +0000 (+0900) Subject: core: Fix unimap translation range X-Git-Url: https://git.friedersdorff.com/?a=commitdiff_plain;h=01477b7ef2536d2c615d3e92a803cf6d52455fa6;p=max%2Ftmk_keyboard.git core: Fix unimap translation range --- diff --git a/tmk_core/common/unimap.c b/tmk_core/common/unimap.c index 84109b5a..fcdc93bd 100644 --- a/tmk_core/common/unimap.c +++ b/tmk_core/common/unimap.c @@ -25,8 +25,8 @@ keypos_t unimap_translate(keypos_t key) unimap_trans[key.row][key.col]; #endif return (keypos_t) { - .row = ((unimap_pos & 0xf0) >> 4), - .col = (unimap_pos & 0x0f) + .row = ((unimap_pos >> 4 ) & 0x07), + .col = (unimap_pos & 0x0F) }; } @@ -35,13 +35,13 @@ __attribute__ ((weak)) action_t action_for_key(uint8_t layer, keypos_t key) { keypos_t uni = unimap_translate(key); - if ((uni.row << 4 | uni.col) == UNIMAP_NO) { + if ((uni.row << 4 | uni.col) > 0x7F) { return (action_t)ACTION_NO; } #if defined(__AVR__) - return (action_t)pgm_read_word(&actionmaps[(layer)][(uni.row & 0x7)][(uni.col)]); + return (action_t)pgm_read_word(&actionmaps[(layer)][(uni.row & 0x07)][(uni.col & 0x0F)]); #else - return actionmaps[(layer)][(uni.row & 0x7)][(uni.col)]; + return actionmaps[(layer)][(uni.row & 0x07)][(uni.col & 0x0F)]; #endif }