Merge pull request #23 from keyboardio/f/actOnHalfRow/no-handler-calls-in-the-idle-case

actOnHalfRow: Do not handle events on fully idle positions
pull/365/head
Gergely Nagy 7 years ago committed by GitHub
commit 1c9a786597
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -158,16 +158,13 @@ void Model01::readMatrix() {
}
void Model01::actOnHalfRow(byte row, byte colState, byte colPrevState, byte startPos) {
if ((colState == colPrevState) && (colState == 0)) {
for (byte col = 0; col < 8; col++) {
handleKeyswitchEvent(Key_NoKey, row, startPos - col, 0);
}
} else {
if ((colState != colPrevState) || (colState != 0)) {
for (byte col = 0; col < 8; col++) {
// Build up the key state for row, col
uint8_t keyState = ((bitRead(colPrevState, 0) << 0) |
(bitRead(colState, 0) << 1));
handleKeyswitchEvent(Key_NoKey, row, startPos - col, keyState);
if (keyState)
handleKeyswitchEvent(Key_NoKey, row, startPos - col, keyState);
// Throw away the data we've just used, so we can read the next column
colState = colState >> 1;

Loading…
Cancel
Save