X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;ds=sidebyside;f=tmk_core%2Fcommon%2Faction_layer.c;h=be316697190cc7b2a1533ca606a570872256967d;hb=4970985e9ba25fcae7bd9a162c1c74105ec92242;hp=6b5a7fd2b83e9216939601cb5439ec65da459e86;hpb=74019c8e417dbfac0b925effa1b29769d04bd8d5;p=max%2Ftmk_keyboard.git diff --git a/tmk_core/common/action_layer.c b/tmk_core/common/action_layer.c index 6b5a7fd2..be316697 100644 --- a/tmk_core/common/action_layer.c +++ b/tmk_core/common/action_layer.c @@ -24,7 +24,9 @@ static void default_layer_state_set(uint32_t state) default_layer_state = state; hook_default_layer_change(default_layer_state); default_layer_debug(); debug("\n"); +#ifdef NO_TRACK_KEY_PRESS clear_keyboard_but_mods(); // To avoid stuck keys +#endif } void default_layer_debug(void) @@ -66,7 +68,9 @@ static void layer_state_set(uint32_t state) layer_state = state; hook_layer_change(layer_state); layer_debug(); dprintln(); +#ifdef NO_TRACK_KEY_PRESS clear_keyboard_but_mods(); // To avoid stuck keys +#endif } void layer_clear(void) @@ -115,26 +119,47 @@ void layer_debug(void) -action_t layer_switch_get_action(keypos_t key) +/* return layer effective for key at this time */ +static uint8_t current_layer_for_key(keypos_t key) { - action_t action = ACTION_TRANSPARENT; - #ifndef NO_ACTION_LAYER + action_t action = ACTION_TRANSPARENT; uint32_t layers = layer_state | default_layer_state; /* check top layer first */ for (int8_t i = 31; i >= 0; i--) { if (layers & (1UL<