forked from mirrors/qmk_userspace
Fix swap-hands tapping.
This is an inelegant hack for #2522 but makes things work. Basically we give `action.c` a chance to handle the hold event early so that we can swap the keyboard for later keys. Later, to allow the hold to happen again quickly we nuke the key record so that tapping is reset. I tried to find a cleaner way, honestly.
This commit is contained in:
parent
23ac2a02ef
commit
5d771039ad
4 changed files with 50 additions and 9 deletions
|
@ -186,7 +186,7 @@ typedef union {
|
|||
} func;
|
||||
struct action_swap {
|
||||
uint8_t code :8;
|
||||
uint8_t opt :4;
|
||||
uint8_t opt :4;
|
||||
uint8_t kind :4;
|
||||
} swap;
|
||||
} action_t;
|
||||
|
@ -243,7 +243,7 @@ enum usage_pages {
|
|||
|
||||
|
||||
|
||||
/*
|
||||
/*
|
||||
* Layer Actions
|
||||
*/
|
||||
enum layer_param_on {
|
||||
|
@ -257,7 +257,7 @@ enum layer_param_bit_op {
|
|||
OP_BIT_XOR = 2,
|
||||
OP_BIT_SET = 3,
|
||||
};
|
||||
enum layer_pram_tap_op {
|
||||
enum layer_param_tap_op {
|
||||
OP_TAP_TOGGLE = 0xF0,
|
||||
OP_ON_OFF,
|
||||
OP_OFF_ON,
|
||||
|
@ -329,7 +329,7 @@ enum function_opts {
|
|||
#define ACTION_FUNCTION_TAP(id) ACTION(ACT_FUNCTION, FUNC_TAP<<8 | (id))
|
||||
#define ACTION_FUNCTION_OPT(id, opt) ACTION(ACT_FUNCTION, (opt)<<8 | (id))
|
||||
/* OneHand Support */
|
||||
enum swap_hands_pram_tap_op {
|
||||
enum swap_hands_param_tap_op {
|
||||
OP_SH_TOGGLE = 0xF0,
|
||||
OP_SH_TAP_TOGGLE,
|
||||
OP_SH_ON_OFF,
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue