~ruther/qmk_firmware

c482a2944bf5b025fd70fa9ee53fc2e12369d327 — Joel Challis 5 years ago e182a38
Provide a mechanism for split keyboards to process key press on both halves (#9001)

1 files changed, 8 insertions(+), 1 deletions(-)

M tmk_core/common/keyboard.c
M tmk_core/common/keyboard.c => tmk_core/common/keyboard.c +8 -1
@@ 213,6 213,13 @@ void keyboard_setup(void) {
 */
__attribute__((weak)) bool is_keyboard_master(void) { return true; }

/** \brief should_process_keypress
 *
 * Override this function if you have a condition where keypresses processing should change:
 *   - splits where the slave side needs to process for rgb/oled functionality
 */
__attribute__((weak)) bool should_process_keypress(void) { return is_keyboard_master(); }

/** \brief keyboard_init
 *
 * FIXME: needs doc


@@ 292,7 299,7 @@ void keyboard_task(void) {
    matrix_scan();
#endif

    if (is_keyboard_master()) {
    if (should_process_keypress()) {
        for (uint8_t r = 0; r < MATRIX_ROWS; r++) {
            matrix_row    = matrix_get_row(r);
            matrix_change = matrix_row ^ matrix_prev[r];