Skip to content

Commit

Permalink
Allowing Pressing the Start Buttons Again to Stop Dynamic Macro Recor…
Browse files Browse the repository at this point in the history
…ding (qmk#9446)
  • Loading branch information
blockader authored Jul 7, 2020
1 parent 834906f commit 545edec
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 4 deletions.
2 changes: 1 addition & 1 deletion docs/feature_dynamic_macros.md
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ That should be everything necessary.

To start recording the macro, press either `DYN_REC_START1` or `DYN_REC_START2`.

To finish the recording, press the `DYN_REC_STOP` layer button.
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.

To replay the macro, press either `DYN_MACRO_PLAY1` or `DYN_MACRO_PLAY2`.

Expand Down
8 changes: 5 additions & 3 deletions quantum/process_keycode/process_dynamic_macro.c
Original file line number Diff line number Diff line change
Expand Up @@ -216,11 +216,13 @@ bool process_dynamic_macro(uint16_t keycode, keyrecord_t *record) {
} else {
/* A macro is being recorded right now. */
switch (keycode) {
case DYN_REC_START1:
case DYN_REC_START2:
case DYN_REC_STOP:
/* Stop the macro recording. */
if (record->event.pressed) { /* Ignore the initial release
* just after the recoding
* starts. */
if (record->event.pressed ^ (keycode != DYN_REC_STOP)) { /* Ignore the initial release
* just after the recording
* starts for DYN_REC_STOP. */
switch (macro_id) {
case 1:
dynamic_macro_record_end(macro_buffer, macro_pointer, +1, &macro_end);
Expand Down

0 comments on commit 545edec

Please sign in to comment.