Added mod carry over from press to release. (#5866)
Co-Authored-By: fauxpark <fauxpark@gmail.com>
This commit is contained in:
committed by
Florian Didron
parent
f5980a2478
commit
aa482e2e4f
@@ -81,11 +81,17 @@
|
|||||||
|
|
||||||
static uint8_t sc_last = 0;
|
static uint8_t sc_last = 0;
|
||||||
static uint16_t sc_timer = 0;
|
static uint16_t sc_timer = 0;
|
||||||
|
#ifdef SPACE_CADET_MODIFIER_CARRYOVER
|
||||||
|
static uint8_t sc_mods = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
void perform_space_cadet(keyrecord_t *record, uint8_t holdMod, uint8_t tapMod, uint8_t keycode) {
|
void perform_space_cadet(keyrecord_t *record, uint8_t holdMod, uint8_t tapMod, uint8_t keycode) {
|
||||||
if (record->event.pressed) {
|
if (record->event.pressed) {
|
||||||
sc_last = holdMod;
|
sc_last = holdMod;
|
||||||
sc_timer = timer_read ();
|
sc_timer = timer_read ();
|
||||||
|
#ifdef SPACE_CADET_MODIFIER_CARRYOVER
|
||||||
|
sc_mods = get_mods();
|
||||||
|
#endif
|
||||||
if (IS_MOD(holdMod)) {
|
if (IS_MOD(holdMod)) {
|
||||||
register_mods(MOD_BIT(holdMod));
|
register_mods(MOD_BIT(holdMod));
|
||||||
}
|
}
|
||||||
@@ -100,7 +106,13 @@ void perform_space_cadet(keyrecord_t *record, uint8_t holdMod, uint8_t tapMod, u
|
|||||||
register_mods(MOD_BIT(tapMod));
|
register_mods(MOD_BIT(tapMod));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
#ifdef SPACE_CADET_MODIFIER_CARRYOVER
|
||||||
|
set_weak_mods(sc_mods);
|
||||||
|
#endif
|
||||||
tap_code(keycode);
|
tap_code(keycode);
|
||||||
|
#ifdef SPACE_CADET_MODIFIER_CARRYOVER
|
||||||
|
clear_weak_mods();
|
||||||
|
#endif
|
||||||
if (IS_MOD(tapMod)) {
|
if (IS_MOD(tapMod)) {
|
||||||
unregister_mods(MOD_BIT(tapMod));
|
unregister_mods(MOD_BIT(tapMod));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user