aboutsummaryrefslogtreecommitdiff
path: root/common/keyboard.c
diff options
context:
space:
mode:
Diffstat (limited to 'common/keyboard.c')
-rw-r--r--common/keyboard.c10
1 files changed, 5 insertions, 5 deletions
diff --git a/common/keyboard.c b/common/keyboard.c
index fa22116f1..cd1ceb420 100644
--- a/common/keyboard.c
+++ b/common/keyboard.c
@@ -564,20 +564,20 @@ void keyboard_task(void)
564 matrix_row_t matrix_change = 0; 564 matrix_row_t matrix_change = 0;
565 565
566 matrix_scan(); 566 matrix_scan();
567 for (int r = 0; r < MATRIX_ROWS; r++) { 567 for (uint8_t r = 0; r < MATRIX_ROWS; r++) {
568 matrix_row = matrix_get_row(r); 568 matrix_row = matrix_get_row(r);
569 matrix_change = matrix_row ^ matrix_prev[r]; 569 matrix_change = matrix_row ^ matrix_prev[r];
570 if (matrix_change) { 570 if (matrix_change) {
571 if (debug_matrix) matrix_print(); 571 if (debug_matrix) matrix_print();
572 572
573 for (int c = 0; c < MATRIX_COLS; c++) { 573 for (uint8_t c = 0; c < MATRIX_COLS; c++) {
574 if (matrix_change & (1<<c)) { 574 if (matrix_change & ((matrix_row_t)1<<c)) {
575 process_key((keyevent_t){ 575 process_key((keyevent_t){
576 .key = (key_t){ .row = r, .col = c }, 576 .key = (key_t){ .row = r, .col = c },
577 .pressed = (matrix_row & (1<<c)) 577 .pressed = (matrix_row & ((matrix_row_t)1<<c))
578 }); 578 });
579 // record a processed key 579 // record a processed key
580 matrix_prev[r] ^= (1<<c); 580 matrix_prev[r] ^= ((matrix_row_t)1<<c);
581 // process a key per task call 581 // process a key per task call
582 goto MATRIX_LOOP_END; 582 goto MATRIX_LOOP_END;
583 } 583 }