aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/feature_dynamic_macros.md2
-rw-r--r--quantum/process_keycode/process_dynamic_macro.c8
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
19To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`. 19To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`.
20 20
21To finish the recording, press the `DYN_REC_STOP` layer button. 21To 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
23To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`. 23To 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, &macro_end); 228 dynamic_macro_record_end(macro_buffer, macro_pointer, +1, &macro_end);