X-Git-Url: https://git.friedersdorff.com/?a=blobdiff_plain;f=common%2Faction.c;h=4fafbfa79f58f86a0c1cf1638f859efa2fc3b1f2;hb=9a106537f64fe61af6048b41262f002ce6a716d9;hp=7f3e236f0413e3267931be2b9c7ed63b203c5b4c;hpb=a207e848b3b308406263576c1e0d066067888416;p=max%2Ftmk_keyboard.git
diff --git a/common/action.c b/common/action.c
index 7f3e236f..4fafbfa7 100644
--- a/common/action.c
+++ b/common/action.c
@@ -23,6 +23,7 @@ along with this program. If not, see .
#include "command.h"
#include "util.h"
#include "debug.h"
+#include "led.h"
#include "layer_switch.h"
#include "action_macro.h"
#include "action.h"
@@ -360,6 +361,7 @@ static void process_action(keyrecord_t *record)
case OP_RESET:
switch (action.layer.val & 0x03) {
case 0:
+ // NOTE: reserved
overlay_clear();
keymap_clear();
break;
@@ -379,26 +381,21 @@ static void process_action(keyrecord_t *record)
overlay_clear();
keymap_clear();
break;
+ /* NOTE: 4-7 rserved */
}
break;
/* Keymap Reset default layer */
case (OP_RESET | ON_PRESS):
if (event.pressed) {
- overlay_clear();
- keymap_clear();
default_layer_set(action.layer.val);
}
break;
case (OP_RESET | ON_RELEASE):
if (!event.pressed) {
- overlay_clear();
- keymap_clear();
default_layer_set(action.layer.val);
}
break;
case (OP_RESET | ON_BOTH):
- overlay_clear();
- keymap_clear();
default_layer_set(action.layer.val);
break;
@@ -525,6 +522,7 @@ static void process_action(keyrecord_t *record)
// Overlay Invert bit4
case OP_INV4 | 0:
if (action.layer.val == 0) {
+ // NOTE: reserved for future use
overlay_clear();
} else {
overlay_set(overlay_stat ^ action.layer.val);
@@ -532,6 +530,7 @@ static void process_action(keyrecord_t *record)
break;
case OP_INV4 | 1:
if (action.layer.val == 0) {
+ // on pressed
if (event.pressed) overlay_clear();
} else {
overlay_set(overlay_stat ^ action.layer.val<<4);
@@ -539,6 +538,7 @@ static void process_action(keyrecord_t *record)
break;
case OP_INV4 | 2:
if (action.layer.val == 0) {
+ // on released
if (!event.pressed) overlay_clear();
} else {
overlay_set(overlay_stat ^ action.layer.val<<8);
@@ -546,6 +546,7 @@ static void process_action(keyrecord_t *record)
break;
case OP_INV4 | 3:
if (action.layer.val == 0) {
+ // on both
overlay_clear();
} else {
overlay_set(overlay_stat ^ action.layer.val<<12);
@@ -889,6 +890,18 @@ void register_code(uint8_t code)
if (code == KC_NO) {
return;
}
+#ifdef CAPSLOCK_LOCKING_ENABLE
+ else if (KC_LOCKING_CAPS == code) {
+#ifdef CAPSLOCK_LOCKING_RESYNC_ENABLE
+ // Resync: ignore if caps lock already is on
+ if (host_keyboard_leds() & (1<