[Bug] Prevent dynamic keymaps from processing layers that don't exist (#19225)
This commit is contained in:
@@ -25,6 +25,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
# ifndef DYNAMIC_KEYMAP_LAYER_COUNT
|
||||
# define DYNAMIC_KEYMAP_LAYER_COUNT 4
|
||||
# endif
|
||||
# define MAX_LAYER DYNAMIC_KEYMAP_LAYER_COUNT
|
||||
# if DYNAMIC_KEYMAP_LAYER_COUNT <= 8
|
||||
# ifndef LAYER_STATE_8BIT
|
||||
# define LAYER_STATE_8BIT
|
||||
|
@@ -17,7 +17,11 @@ uint8_t keymap_layer_count(void) {
|
||||
return NUM_KEYMAP_LAYERS;
|
||||
}
|
||||
|
||||
#ifdef DYNAMIC_KEYMAP_ENABLE
|
||||
_Static_assert(NUM_KEYMAP_LAYERS <= MAX_LAYER, "Number of keymap layers exceeds maximum set by DYNAMIC_KEYMAP_LAYER_COUNT");
|
||||
#else
|
||||
_Static_assert(NUM_KEYMAP_LAYERS <= MAX_LAYER, "Number of keymap layers exceeds maximum set by LAYER_STATE_(8|16|32)BIT");
|
||||
#endif
|
||||
|
||||
uint16_t keycode_at_keymap_location_raw(uint8_t layer_num, uint8_t row, uint8_t column) {
|
||||
if (layer_num < NUM_KEYMAP_LAYERS && row < MATRIX_ROWS && column < MATRIX_COLS) {
|
||||
|
Reference in New Issue
Block a user