|
|
|
@ -50,35 +50,28 @@ const uint16_t PROGMEM fn_actions[] = { |
|
|
|
|
|
|
|
|
|
void action_function(keyrecord_t *record, uint8_t id, uint8_t opt) { |
|
|
|
|
static uint8_t mods_pressed; |
|
|
|
|
static bool mod_flag; |
|
|
|
|
|
|
|
|
|
switch (id) { |
|
|
|
|
case 0: |
|
|
|
|
/* Handle the combined Grave/Esc key
|
|
|
|
|
*/ |
|
|
|
|
mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed
|
|
|
|
|
|
|
|
|
|
if (record->event.pressed) { |
|
|
|
|
/* The key is being pressed.
|
|
|
|
|
*/ |
|
|
|
|
mods_pressed = get_mods()&GRAVE_MODS; // Check to see what mods are pressed
|
|
|
|
|
if (mods_pressed) { |
|
|
|
|
mod_flag = true; |
|
|
|
|
add_key(KC_GRV); |
|
|
|
|
send_keyboard_report(); |
|
|
|
|
register_code(KC_GRV); |
|
|
|
|
} else { |
|
|
|
|
add_key(KC_ESC); |
|
|
|
|
send_keyboard_report(); |
|
|
|
|
register_code(KC_ESC); |
|
|
|
|
} |
|
|
|
|
} else { |
|
|
|
|
/* The key is being released.
|
|
|
|
|
*/ |
|
|
|
|
if (mod_flag) { |
|
|
|
|
mod_flag = false; |
|
|
|
|
del_key(KC_GRV); |
|
|
|
|
send_keyboard_report(); |
|
|
|
|
if (mods_pressed) { |
|
|
|
|
mods_pressed = false; |
|
|
|
|
unregister_code(KC_GRV); |
|
|
|
|
} else { |
|
|
|
|
del_key(KC_ESC); |
|
|
|
|
send_keyboard_report(); |
|
|
|
|
unregister_code(KC_ESC); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
break; |
|
|
|
|