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;