aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authortmk <nobody@nowhere>2014-01-28 10:55:51 +0900
committertmk <nobody@nowhere>2014-01-28 10:55:51 +0900
commitcb3a547ebff8e09401c7d635ed24585a7521bb19 (patch)
tree9f90ef44921666b88858c76abce87a5dd783c42b
parenta86c1e2b713e8adace45cd3c1cae397a908b261e (diff)
downloadqmk_firmware-cb3a547ebff8e09401c7d635ed24585a7521bb19.tar.gz
qmk_firmware-cb3a547ebff8e09401c7d635ed24585a7521bb19.zip
Make modifiers 'weak' in macro
-rw-r--r--common/action_macro.c13
1 files changed, 11 insertions, 2 deletions
diff --git a/common/action_macro.c b/common/action_macro.c
index cc7ac18a0..d85aee379 100644
--- a/common/action_macro.c
+++ b/common/action_macro.c
@@ -16,6 +16,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
16*/ 16*/
17#include <util/delay.h> 17#include <util/delay.h>
18#include "action.h" 18#include "action.h"
19#include "action_util.h"
19#include "action_macro.h" 20#include "action_macro.h"
20 21
21#ifdef DEBUG_ACTION 22#ifdef DEBUG_ACTION
@@ -39,12 +40,20 @@ void action_macro_play(const macro_t *macro_p)
39 case KEY_DOWN: 40 case KEY_DOWN:
40 MACRO_READ(); 41 MACRO_READ();
41 dprintf("KEY_DOWN(%02X)\n", macro); 42 dprintf("KEY_DOWN(%02X)\n", macro);
42 register_code(macro); 43 if (IS_MOD(macro)) {
44 add_weak_mods(MOD_BIT(macro));
45 } else {
46 register_code(macro);
47 }
43 break; 48 break;
44 case KEY_UP: 49 case KEY_UP:
45 MACRO_READ(); 50 MACRO_READ();
46 dprintf("KEY_UP(%02X)\n", macro); 51 dprintf("KEY_UP(%02X)\n", macro);
47 unregister_code(macro); 52 if (IS_MOD(macro)) {
53 del_weak_mods(MOD_BIT(macro));
54 } else {
55 unregister_code(macro);
56 }
48 break; 57 break;
49 case WAIT: 58 case WAIT:
50 MACRO_READ(); 59 MACRO_READ();