summaryrefslogtreecommitdiff
path: root/quantum/action_layer.c
diff options
context:
space:
mode:
authorDrashna Jaelre <drashna@live.com>2025-05-04 17:21:47 -0700
committerGitHub <noreply@github.com>2025-05-05 10:21:47 +1000
commit12caf0be4eab171ffeb041cc153f9addb68f404e (patch)
tree0b89fa2aa4c5ce4a525d1385a10489844e413ee9 /quantum/action_layer.c
parentbb9dd05c6ae0a53ced5591c70a898feef037b31c (diff)
Add additional hooks for Community modules (#25050)
Diffstat (limited to 'quantum/action_layer.c')
-rw-r--r--quantum/action_layer.c19
1 files changed, 19 insertions, 0 deletions
diff --git a/quantum/action_layer.c b/quantum/action_layer.c
index 7c09a5bd1e..5828dcb824 100644
--- a/quantum/action_layer.c
+++ b/quantum/action_layer.c
@@ -27,11 +27,20 @@ __attribute__((weak)) layer_state_t default_layer_state_set_kb(layer_state_t sta
27 return default_layer_state_set_user(state); 27 return default_layer_state_set_user(state);
28} 28}
29 29
30/** \brief Default Layer State Set At Module Level
31 *
32 * Run module code on default layer state change
33 */
34__attribute__((weak)) layer_state_t default_layer_state_set_modules(layer_state_t state) {
35 return state;
36}
37
30/** \brief Default Layer State Set 38/** \brief Default Layer State Set
31 * 39 *
32 * Static function to set the default layer state, prints debug info and clears keys 40 * Static function to set the default layer state, prints debug info and clears keys
33 */ 41 */
34static void default_layer_state_set(layer_state_t state) { 42static void default_layer_state_set(layer_state_t state) {
43 state = default_layer_state_set_modules(state);
35 state = default_layer_state_set_kb(state); 44 state = default_layer_state_set_kb(state);
36 ac_dprintf("default_layer_state: "); 45 ac_dprintf("default_layer_state: ");
37 default_layer_debug(); 46 default_layer_debug();
@@ -107,11 +116,21 @@ __attribute__((weak)) layer_state_t layer_state_set_kb(layer_state_t state) {
107 return layer_state_set_user(state); 116 return layer_state_set_user(state);
108} 117}
109 118
119/** \brief Layer state set modules
120 *
121 * Runs module code on layer state change
122 */
123
124__attribute__((weak)) layer_state_t layer_state_set_modules(layer_state_t state) {
125 return state;
126}
127
110/** \brief Layer state set 128/** \brief Layer state set
111 * 129 *
112 * Sets the layer to match the specified state (a bitmask) 130 * Sets the layer to match the specified state (a bitmask)
113 */ 131 */
114void layer_state_set(layer_state_t state) { 132void layer_state_set(layer_state_t state) {
133 state = layer_state_set_modules(state);
115 state = layer_state_set_kb(state); 134 state = layer_state_set_kb(state);
116 ac_dprintf("layer_state: "); 135 ac_dprintf("layer_state: ");
117 layer_debug(); 136 layer_debug();