case MODS_TAP_TOGGLE:
if (event.pressed) {
if (tap_count <= TAPPING_TOGGLE) {
- register_mods(mods);
+ if (mods & get_mods()) {
+ dprint("MODS_TAP_TOGGLE: toggle mods off\n");
+ unregister_mods(mods);
+ } else {
+ dprint("MODS_TAP_TOGGLE: toggle mods on\n");
+ register_mods(mods);
+ }
}
} else {
if (tap_count < TAPPING_TOGGLE) {
+ dprint("MODS_TAP_TOGGLE: release : unregister_mods\n");
unregister_mods(mods);
}
}
case ACT_RMODS_TAP:
case ACT_LAYER_TAP:
case ACT_LAYER_TAP_EXT:
- return true;
+ switch (action.layer_tap.code) {
+ case 0x00 ... 0xdf:
+ case OP_TAP_TOGGLE:
+ return true;
+ }
+ return false;
case ACT_MACRO:
case ACT_FUNCTION:
if (action.func.opt & FUNC_TAP) { return true; }