diff options
| author | tmk <nobody@nowhere> | 2013-02-15 15:27:19 +0900 |
|---|---|---|
| committer | tmk <nobody@nowhere> | 2013-02-15 15:27:19 +0900 |
| commit | 2b811352a1497e28b946a49f9f31dc15dbda420b (patch) | |
| tree | 98b2502fd231d4916270b76632242a15bb27781d /common/layer_stack.c | |
| parent | 0c1d98bd3c0b0ea4f109d2515521f1fcbccf3d3f (diff) | |
| download | qmk_firmware-2b811352a1497e28b946a49f9f31dc15dbda420b.tar.gz qmk_firmware-2b811352a1497e28b946a49f9f31dc15dbda420b.zip | |
Fix switch_default_layer command
Diffstat (limited to 'common/layer_stack.c')
| -rw-r--r-- | common/layer_stack.c | 18 |
1 files changed, 13 insertions, 5 deletions
diff --git a/common/layer_stack.c b/common/layer_stack.c index 07c84870c..0076bf779 100644 --- a/common/layer_stack.c +++ b/common/layer_stack.c | |||
| @@ -9,13 +9,23 @@ static uint8_t top_layer = 0; | |||
| 9 | /* [0] always works as sentinel and not used for store.*/ | 9 | /* [0] always works as sentinel and not used for store.*/ |
| 10 | static layer_item_t layer_stack[LAYER_STACK_SIZE] = {}; | 10 | static layer_item_t layer_stack[LAYER_STACK_SIZE] = {}; |
| 11 | 11 | ||
| 12 | |||
| 13 | void layer_stack_clear(void) | ||
| 14 | { | ||
| 15 | for (uint8_t i = 0; i < LAYER_STACK_SIZE; i++) { | ||
| 16 | layer_stack[i] = (layer_item_t){ .layer = 0, | ||
| 17 | .next = 0, | ||
| 18 | .used = false }; | ||
| 19 | } | ||
| 20 | } | ||
| 21 | |||
| 12 | bool layer_stack_push(uint8_t layer) | 22 | bool layer_stack_push(uint8_t layer) |
| 13 | { | 23 | { |
| 14 | for (uint8_t i = 1; i < LAYER_STACK_SIZE; i++) { | 24 | for (uint8_t i = 1; i < LAYER_STACK_SIZE; i++) { |
| 15 | if (!layer_stack[i].used) { | 25 | if (!layer_stack[i].used) { |
| 16 | layer_stack[i] = (layer_item_t){ .layer = layer, | 26 | layer_stack[i] = (layer_item_t){ .layer = layer, |
| 17 | .next = top_layer, | 27 | .next = top_layer, |
| 18 | .used = true }; | 28 | .used = true }; |
| 19 | top_layer = i; | 29 | top_layer = i; |
| 20 | return true; | 30 | return true; |
| 21 | } | 31 | } |
| @@ -73,14 +83,12 @@ void layer_stack_debug(void) | |||
| 73 | layer_item_t item = layer_stack[top_layer]; | 83 | layer_item_t item = layer_stack[top_layer]; |
| 74 | while (item.used) { | 84 | while (item.used) { |
| 75 | debug_dec(item.layer); | 85 | debug_dec(item.layer); |
| 76 | debug("["); debug_dec(item.next); debug("]"); | 86 | debug("["); debug_dec(item.next); debug("] "); |
| 77 | item = layer_stack[item.next]; | 87 | item = layer_stack[item.next]; |
| 78 | } | 88 | } |
| 79 | debug("\n"); | 89 | debug("\n"); |
| 80 | } | 90 | } |
| 81 | 91 | ||
| 82 | |||
| 83 | |||
| 84 | action_t layer_stack_get_action(key_t key) | 92 | action_t layer_stack_get_action(key_t key) |
| 85 | { | 93 | { |
| 86 | action_t action; | 94 | action_t action; |
