[Core] Fix bug and code regression for Split Common (#15603)

This commit is contained in:
Drashna Jaelre 2021-12-27 15:01:51 -08:00 committed by GitHub
parent 2689e360ce
commit c86baf3ece
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 10 additions and 13 deletions

View file

@ -95,23 +95,21 @@ uint8_t matrix_key_count(void) {
bool matrix_post_scan(void) { bool matrix_post_scan(void) {
bool changed = false; bool changed = false;
if (is_keyboard_master()) { if (is_keyboard_master()) {
static bool last_connected = false;
matrix_row_t slave_matrix[ROWS_PER_HAND] = {0}; matrix_row_t slave_matrix[ROWS_PER_HAND] = {0};
if (transport_master_if_connected(matrix + thisHand, slave_matrix)) { if (transport_master_if_connected(matrix + thisHand, slave_matrix)) {
for (int i = 0; i < ROWS_PER_HAND; ++i) { changed = memcmp(matrix + thatHand, slave_matrix, sizeof(slave_matrix)) != 0;
if (matrix[thatHand + i] != slave_matrix[i]) {
matrix[thatHand + i] = slave_matrix[i]; last_connected = true;
} else if (last_connected) {
// reset other half when disconnected
memset(slave_matrix, 0, sizeof(slave_matrix));
changed = true; changed = true;
}
} last_connected = false;
} else {
// reset other half if disconnected
for (int i = 0; i < ROWS_PER_HAND; ++i) {
matrix[thatHand + i] = 0;
slave_matrix[i] = 0;
} }
changed = true; if (changed) memcpy(matrix + thatHand, slave_matrix, sizeof(slave_matrix));
}
matrix_scan_quantum(); matrix_scan_quantum();
} else { } else {

View file

@ -2,7 +2,6 @@
#include <stdbool.h> #include <stdbool.h>
#include <stdint.h> #include <stdint.h>
#include <stdio.h>
#include <stdlib.h> #include <stdlib.h>
#include "matrix.h" #include "matrix.h"