X-Git-Url: https://git.donarmstrong.com/?a=blobdiff_plain;f=common%2Faction_macro.c;h=d85aee3796e58a85196fae6765f3025be53d84c7;hb=b08d4e7f69a1e1ef1a7a20b305138e4443935c4b;hp=cc7ac18a099215defdf2772dfea49a37fef263c0;hpb=6aaa6e0ef9aa1e464b67723fd4cdd0d63b2c861d;p=tmk_firmware.git diff --git a/common/action_macro.c b/common/action_macro.c index cc7ac18..d85aee3 100644 --- a/common/action_macro.c +++ b/common/action_macro.c @@ -16,6 +16,7 @@ along with this program. If not, see . */ #include #include "action.h" +#include "action_util.h" #include "action_macro.h" #ifdef DEBUG_ACTION @@ -39,12 +40,20 @@ void action_macro_play(const macro_t *macro_p) case KEY_DOWN: MACRO_READ(); dprintf("KEY_DOWN(%02X)\n", macro); - register_code(macro); + if (IS_MOD(macro)) { + add_weak_mods(MOD_BIT(macro)); + } else { + register_code(macro); + } break; case KEY_UP: MACRO_READ(); dprintf("KEY_UP(%02X)\n", macro); - unregister_code(macro); + if (IS_MOD(macro)) { + del_weak_mods(MOD_BIT(macro)); + } else { + unregister_code(macro); + } break; case WAIT: MACRO_READ();