diff options
author | tmk <nobody@nowhere> | 2013-11-28 16:31:06 +0900 |
---|---|---|
committer | tmk <nobody@nowhere> | 2013-11-28 16:31:06 +0900 |
commit | fd9ee507a557e17b5af9fcd8892868ddf07bbb7a (patch) | |
tree | 05f1f89e90a23d3dff01052a1875be2cf3133135 /common | |
parent | f3132adb33fd38e8d9d49845809ad5cb89f9c9c1 (diff) | |
parent | a6afa845b98d4fa7097c840fedbace59fef8f738 (diff) |
Merge branch 'modstaptoggle' of git://github.com/simonmelhart/tmk_keyboard into simonmelhart-modstaptoggle
Conflicts:
common/action_code.h
Diffstat (limited to 'common')
-rw-r--r-- | common/action.c | 11 | ||||
-rw-r--r-- | common/action_code.h | 3 |
2 files changed, 14 insertions, 0 deletions
diff --git a/common/action.c b/common/action.c index 485abf81e3..e6938f5a23 100644 --- a/common/action.c +++ b/common/action.c @@ -128,6 +128,17 @@ void process_action(keyrecord_t *record) } break; #endif + case MODS_TAP_TOGGLE: + if (event.pressed) { + if (tap_count <= TAPPING_TOGGLE) { + register_mods(mods); + } + } else { + if (tap_count < TAPPING_TOGGLE) { + unregister_mods(mods); + } + } + break; default: if (event.pressed) { if (tap_count > 0) { diff --git a/common/action_code.h b/common/action_code.h index b08d36124e..8df86b1192 100644 --- a/common/action_code.h +++ b/common/action_code.h @@ -34,6 +34,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>. * * ACT_MODS_TAP(001r): * 001r|mods|0000 0000 Modifiers with OneShot + * 001r|mods|0000 0001 Modifiers with tap toggle * 001r|mods|0000 00xx (reserved) * 001r|mods| keycode Modifiers with Tap Key(Dual role) * @@ -205,12 +206,14 @@ enum mods_bit { }; enum mods_codes { MODS_ONESHOT = 0x00, + MODS_TAP_TOGGLE = 0x01, }; #define ACTION_KEY(key) ACTION(ACT_MODS, (key)) #define ACTION_MODS(mods) ACTION(ACT_MODS, ((mods)&0x1f)<<8 | 0) #define ACTION_MODS_KEY(mods, key) ACTION(ACT_MODS, ((mods)&0x1f)<<8 | (key)) #define ACTION_MODS_TAP_KEY(mods, key) ACTION(ACT_MODS_TAP, ((mods)&0x1f)<<8 | (key)) #define ACTION_MODS_ONESHOT(mods) ACTION(ACT_MODS_TAP, ((mods)&0x1f)<<8 | MODS_ONESHOT) +#define ACTION_MODS_TAP_TOGGLE(mods) ACTION(ACT_MODS_TAP, ((mods)&0x1f)<<8 | MODS_TAP_TOGGLE) /* |