- if ((state->count == 1) && (!state->pressed)) return SINGLE_TAP;
- else if ((state->count == 1) && (state->pressed)) return SINGLE_HOLD;
- else if ((state->count == 2) && (!state->pressed)) return DOUBLE_TAP;
- else if ((state->count == 2) && (state->pressed)) return DOUBLE_HOLD;
- else return 5; //magic number. At some point this method will expand to work for more presses
+ if (state->count == 1) {
+ //If count = 1, and it has been interrupted - it doesn't matter if it is pressed or not: Send SINGLE_TAP
+ if (state->interrupted || state->!pressed) return SINGLE_TAP;
+ else return SINGLE_HOLD;
+ }
+ //If count = 2, and it has been interrupted - assume that user is trying to type the letter associated
+ //with single tap. In example below, that means to send `xx` instead of `Escape`.
+ else if (state->count = 2) {
+ if (state->interrupted) return DOUBLE_SINGLE_TAP;
+ else if (state->pressed) return DOUBLE_HOLD;
+ else return DOUBLE_TAP;
+ }
+ else return 6; //magic number. At some point this method will expand to work for more presses