diff options
-rw-r--r-- | docs/feature_dynamic_macros.md | 2 | ||||
-rw-r--r-- | quantum/process_keycode/process_dynamic_macro.c | 8 |
2 files changed, 6 insertions, 4 deletions
diff --git a/docs/feature_dynamic_macros.md b/docs/feature_dynamic_macros.md index b86df6c60..137b0eefb 100644 --- a/docs/feature_dynamic_macros.md +++ b/docs/feature_dynamic_macros.md | |||
@@ -18,7 +18,7 @@ That should be everything necessary. | |||
18 | 18 | ||
19 | To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. | 19 | To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. |
20 | 20 | ||
21 | To finish the recording, press the `DYN_REC_STOP` layer button. | 21 | To finish the recording, press the `DYN_REC_STOP` layer button. You can also press `DYN_REC_START1` or `DYN_REC_START2` again to stop the recording. |
22 | 22 | ||
23 | To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`. | 23 | To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`. |
24 | 24 | ||
diff --git a/quantum/process_keycode/process_dynamic_macro.c b/quantum/process_keycode/process_dynamic_macro.c index 2065f242d..df3a8a812 100644 --- a/quantum/process_keycode/process_dynamic_macro.c +++ b/quantum/process_keycode/process_dynamic_macro.c | |||
@@ -216,11 +216,13 @@ bool process_dynamic_macro(uint16_t keycode, keyrecord_t *record) { | |||
216 | } else { | 216 | } else { |
217 | /* A macro is being recorded right now. */ | 217 | /* A macro is being recorded right now. */ |
218 | switch (keycode) { | 218 | switch (keycode) { |
219 | case DYN_REC_START1: | ||
220 | case DYN_REC_START2: | ||
219 | case DYN_REC_STOP: | 221 | case DYN_REC_STOP: |
220 | /* Stop the macro recording. */ | 222 | /* Stop the macro recording. */ |
221 | if (record->event.pressed) { /* Ignore the initial release | 223 | if (record->event.pressed ^ (keycode != DYN_REC_STOP)) { /* Ignore the initial release |
222 | * just after the recoding | 224 | * just after the recording |
223 | * starts. */ | 225 | * starts for DYN_REC_STOP. */ |
224 | switch (macro_id) { | 226 | switch (macro_id) { |
225 | case 1: | 227 | case 1: |
226 | dynamic_macro_record_end(macro_buffer, macro_pointer, +1, ¯o_end); | 228 | dynamic_macro_record_end(macro_buffer, macro_pointer, +1, ¯o_end); |