Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Process combos earlier & overlapping combos (#8591)
* Combo processing improvements. Now it is possible to use ModTap and LayerTap keys as part of combos. Overlapping combos also don't trigger all the combos, just exactly the one that you press. New settings: - COMBO_MUST_HOLD_MODS - COMBO_MOD_TERM - COMBO_TERM_PER_COMBO - COMBO_MUST_HOLD_PER_COMBO - COMBO_STRICT_TIMER - COMBO_NO_TIMER * Remove the size flags from combo_t struct boolean members. This in the end actually saves space as the members are accessed so many times. The amount of operations needed to access the bits uses more memory than setting the size saves. * Fix `process_combo_key_release` not called correctly with tap-only combos * Fix not passing a pointer when NO_ACTION_TAPPING is defined. * Docs for `COMBO_ONLY_FROM_LAYER` * Update docs/feature_combo.md Co-authored-by: precondition <[email protected]> * Update quantum/process_keycode/process_combo.c Co-authored-by: precondition <[email protected]> * Add `EXTRA_SHORT_COMBOS` option. Stuff combo's `disabled` and `active` flags into `state`. Possibly can save some space. * Add more examples and clarify things with dict management system. - Simple examples now has a combo that has modifiers included. - The slightly more advanced examples now are actually more advanced instead of just `tap_code16(<modded-keycode>)`. - Added a note that `COMBO_ACTION`s are not needed anymore as you can just use custom keycodes. - Added a note that the `g/keymap_combo.h` macros use the `process_combo_event` function and that it is not usable in one's keymap afterwards. * Update docs/feature_combo.md Co-authored-by: precondition <[email protected]> * Update docs/feature_combo.md Co-authored-by: precondition <[email protected]> * Update docs/feature_combo.md Co-authored-by: precondition <[email protected]> * Update docs/feature_combo.md Co-authored-by: precondition <[email protected]> * Update docs/feature_combo.md Co-authored-by: precondition <[email protected]> * Change "the" combo action example to "email" example. * Update docs/feature_combo.md Co-authored-by: precondition <[email protected]> * Fix sneaky infinite loop with `combo_disable()` No need to call `dump_key_buffer` when disabling combos because the buffer is either being dumped if a combo-key was pressed, or the buffer is empty if a non-combo-key is pressed. * Update docs/feature_combo.md Co-authored-by: precondition <[email protected]> * Update docs/feature_combo.md Co-authored-by: precondition <[email protected]> Co-authored-by: precondition <[email protected]> Co-authored-by: Drashna Jaelre <[email protected]>
- Loading branch information