aboutsummaryrefslogtreecommitdiffstats
path: root/tmk_core/common/action.h
AgeCommit message (Collapse)Author
2020-04-09Fix compile issues related to NO_ACTION_MACRO/FUNCTION and LTO_ENABLE (#8663)Gravatar Konstantin Đorđević
* Define NO_ACTION_MACRO/FUNCTION in header instead of makefile when LTO is enabled Currently, boards and keymaps that define NO_ACTION_MACRO/FUNCTION unconditionally will not compile with LTO_ENABLE (#8604). This fixes the issue by moving the definitions from common.mk to action.h, which enables us to check for previous definitions of those macros (this cannot be done in a makefile). * Remove LTO checks in templates Since now NO_ACTION_MACRO/FUNCTION are defined as needed in action.h (which is included by quantum.h), checking for LTO in keyboard and user code is no longer required. * Update LTO_ENABLE docs
2020-03-23Add Post Processing to process_record (#4892)Gravatar Drashna Jaelre
* Improve process_record system Code based on @colinta's * Rename and better handle functions * Fix incorrect function call to process_record_user * Add documentation for post_process_record * Add both get_event_keycode and get_record_keycode functions And add some comments about these functions * Update code format * Cleanup merge artifacts
2019-10-16Fix bug in `do_code16()` (#6935)Gravatar fauxpark
* Fix bug in `do_code16()` * Remove qk_ mods functions
2019-08-30clang-format changesGravatar skullY
2019-01-25Add support for RETRO_TAPPING to LT(layer, kc)Gravatar lambda_sakura
2018-12-28Keep pressed keys on layer state change (fixes #2053, #2279) (#3905)Gravatar Konstantin Đorđević
* Keep pressed keys on layer state change * Add doc comment for clear_keyboard_but_mods_and_keys * Keep pressed keys only if PREVENT_STUCK_MODIFIERS is on * Check STRICT_LAYER_RELEASE instead of PREVENT_STUCK_MODIFIERS
2018-12-14Fix up tap_code functionality (#4609)Gravatar Drashna Jaelre
* Add delay in Tap Code to avoid issues I think a few people have reporting issues with it working properly, and it may be a timing issue. The 'register_code' uses this sort of delay in some of the functions, and this is probably why. Adding the 100ms delay should hopefully fix any issues with it. * Make tap_code delay configurable * Update documentation * Bring tap_code16 inline with changes * Fix type for tap_code16 Bad copy-paste job * Just use the value check for the define * Clarify timing in docs Co-Authored-By: drashna <drashna@live.com> * Wordsmithing Co-Authored-By: drashna <drashna@live.com>
2018-10-01Add tap_code function (#3784)Gravatar Drashna Jaelre
* Add tap_code * formatting * Doc clarification * Rename variable to make more consistent
2018-09-17Make `PREVENT_STUCK_MODIFIERS` the default (#3107)Gravatar Joe Wasson
* Remove chording as it is not documented, not used, and needs work. * Make Leader Key an optional feature. * Switch from `PREVENT_STUCK_MODIFIERS` to `STRICT_LAYER_RELEASE` * Remove `#define PREVENT_STUCK_MODIFIERS` from keymaps.
2018-03-16Fix swap-hands tapping.Gravatar Joe Wasson
This is an inelegant hack for #2522 but makes things work. Basically we give `action.c` a chance to handle the hold event early so that we can swap the keyboard for later keys. Later, to allow the hold to happen again quickly we nuke the key record so that tapping is reset. I tried to find a cleaner way, honestly.
2018-03-16Rename ONEHAND_ENABLE to SWAP_HANDS_ENABLE for consistencyGravatar Joe Wasson
2016-08-20Add one-hand support.Gravatar Joe Wasson
This adds an action, `ACTION_SWAP_HANDS`, that swaps the the keys on the keyboard across a keymap-defined hemisphere in order to support one-hand typing without requiring a separate one-handed layer. See updated `doc/keymap.md` for more information.
2016-05-15splits process_action up to handle records separately (#329)Gravatar Jack Humbert
* implements leader key for planck experimental * allows override of leader timeout * adds ability to use the leader key in seq * fixes leader keycode * adds chording prototype * fixes keycode detection * moves music mode to quantum.c * disables chording by default * adds music sequencer functionality * implements audio/music functions in quantum.c * splits up process_action to allow independent processing of actions * merging?
2016-05-15Leader key implementation (#326)Gravatar Erez Zukerman
* implements leader key for planck experimental * allows override of leader timeout * adds ability to use the leader key in seq * fixes leader keycode * adds chording prototype * fixes keycode detection * moves music mode to quantum.c * disables chording by default * updates process_action functions to return bool
2016-04-03Merge branch 'master' of https://github.com/jackhumbert/qmk_firmware into ↵Gravatar Wojciech Siewierski
modifier-release-fix
2016-04-01Update action.hGravatar Eric-L-T
2016-03-28Rename function to be keyboard-specificGravatar Damien Pollet
2016-03-28Add per-event user hook function to QMKGravatar Damien Pollet
2016-03-27Cut the memory consumption of PREVENT_STUCK_MODIFIERS in halfGravatar Wojciech Siewierski
2016-03-15Expose the pressed_actions_cache global variableGravatar Wojciech Siewierski
2016-03-15Always provide an implementation of process_action_nocacheGravatar Wojciech Siewierski
2016-03-13process_action may be called either with key cache or without itGravatar Wojciech Siewierski
If one wants to temporarily disable the key cache (for example because it interferes with a macro), `disable_action_cache` must be set to `true`. `process_action_nocache` is a simple wrapper doing just that for a single call.
2015-05-21Revert "Make action_for_key a weak symbol"Gravatar tmk
This reverts commit c17b8a599e3ec3b0a327bcd66082541f2517ab30. The commit made compile error and its intention is unclear.
2015-05-19Make action_for_key a weak symbolGravatar Dan McGregor
2015-04-10Merge commit 'a074364c3731d66b56d988c8a6c960a83ea0e0a1' as 'tmk_core'Gravatar tmk