diff options
| author | Stacy Harper <contact@stacyharper.net> | 2021-08-26 19:20:20 +0200 |
|---|---|---|
| committer | John Sullivan <jsullivan@csumb.edu> | 2021-10-19 23:12:01 -0700 |
| commit | 4648092db1c169d9e62bb6a0c577ab99434652e7 (patch) | |
| tree | 07db2c44384c4e725f9382d4b043a21c73f4f4dd /keyboard.c | |
| parent | 24a9bdc214127281915bbee4df2750adeb21f46a (diff) | |
| download | suggpicker-4648092db1c169d9e62bb6a0c577ab99434652e7.tar.gz | |
Add landscape layers
Diffstat (limited to 'keyboard.c')
| -rw-r--r-- | keyboard.c | 24 |
1 files changed, 21 insertions, 3 deletions
diff --git a/keyboard.c b/keyboard.c index 879704c..373abcb 100644 --- a/keyboard.c +++ b/keyboard.c @@ -97,7 +97,14 @@ void kbd_init(struct kbd *kb, struct layout * layouts, char * layer_names_list) } fprintf(stderr, "Found %d layers\n",i); - kb->layout = &kb->layouts[kb->layers[kb->layer_index]]; + enum layout_id layer; + if (kb->landscape) { + layer = kb->landscape_layers[kb->layer_index]; + } else { + layer = kb->layers[kb->layer_index]; + } + + kb->layout = &kb->layouts[layer]; kb->prevlayout = kb->layout; /* upload keymap */ @@ -236,10 +243,21 @@ kbd_press_key(struct kbd *kb, struct key *k, uint32_t time) { case NextLayer: //switch to the next layout in the layer sequence kb->layer_index++; - if (kb->layers[kb->layer_index] == NumLayouts) { + enum layout_id layer; + if (kb->landscape) { + layer = kb->landscape_layers[kb->layer_index]; + } else { + layer = kb->layers[kb->layer_index]; + } + if (layer == NumLayouts) { kb->layer_index = 0; + if (kb->landscape) { + layer = kb->landscape_layers[kb->layer_index]; + } else { + layer = kb->layers[kb->layer_index]; + } } - kbd_switch_layout(kb, &kb->layouts[kb->layers[kb->layer_index]]); + kbd_switch_layout(kb, &kb->layouts[layer]); break; case BackLayer: //switch to the previously active layout |
