X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=tmk_core%2Fcommon%2Faction_layer.c;h=c6a166a823e62d38675553c074213de348200179;hb=927ef813638953a0d69692f4d21500f1da25b1f4;hp=63fa2b5ae4707755400534749a8771018909cadf;hpb=84b736dc7f7797f98c29dd576b381d62e82b387f;p=qmk_firmware.git diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c index 63fa2b5ae..c6a166a82 100644 --- a/tmk_core/common/action_layer.c +++ b/tmk_core/common/action_layer.c @@ -16,8 +16,14 @@ */ uint32_t default_layer_state = 0; +__attribute__((weak)) +uint32_t default_layer_state_set_kb(uint32_t state) { + return state; +} + static void default_layer_state_set(uint32_t state) { + state = default_layer_state_set_kb(state); debug("default_layer_state: "); default_layer_debug(); debug(" to "); default_layer_state = state; @@ -57,8 +63,14 @@ void default_layer_xor(uint32_t state) */ uint32_t layer_state = 0; +__attribute__((weak)) +uint32_t layer_state_set_kb(uint32_t state) { + return state; +} + static void layer_state_set(uint32_t state) { + state = layer_state_set_kb(state); dprint("layer_state: "); layer_debug(); dprint(" to "); layer_state = state; @@ -111,7 +123,7 @@ void layer_debug(void) #endif #if !defined(NO_ACTION_LAYER) && defined(PREVENT_STUCK_MODIFIERS) -uint8_t source_layers_cache[(MATRIX_ROWS * MATRIX_COLS + 7) / 8][MAX_LAYER_BITS] = {0}; +uint8_t source_layers_cache[(MATRIX_ROWS * MATRIX_COLS + 7) / 8][MAX_LAYER_BITS] = {{0}}; void update_source_layers_cache(keypos_t key, uint8_t layer) { @@ -176,10 +188,10 @@ action_t store_or_get_action(bool pressed, keypos_t key) int8_t layer_switch_get_layer(keypos_t key) { +#ifndef NO_ACTION_LAYER action_t action; action.code = ACTION_TRANSPARENT; -#ifndef NO_ACTION_LAYER uint32_t layers = layer_state | default_layer_state; /* check top layer first */ for (int8_t i = 31; i >= 0; i--) {