From c482a2944bf5b025fd70fa9ee53fc2e12369d327 Mon Sep 17 00:00:00 2001 From: Joel Challis Date: Sun, 3 May 2020 00:39:37 +0100 Subject: [PATCH] Provide a mechanism for split keyboards to process key press on both halves (#9001) --- tmk_core/common/keyboard.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/tmk_core/common/keyboard.c b/tmk_core/common/keyboard.c index a767d9c87..53d08959e 100644 --- a/tmk_core/common/keyboard.c +++ b/tmk_core/common/keyboard.c @@ -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];