diff options
| author | Drashna Jaelre <drashna@live.com> | 2021-07-03 00:19:52 -0700 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-07-03 00:19:52 -0700 |
| commit | 8da8aabbe5796232c0f17f849badd455d42b0277 (patch) | |
| tree | 7cec61a96672644bba25c97fc8a1a9dd8b75d58d /quantum | |
| parent | 03807c2c6e470a3046c1ff40ac7ab74f76b94f74 (diff) | |
| download | qmk_firmware-8da8aabbe5796232c0f17f849badd455d42b0277.tar.gz qmk_firmware-8da8aabbe5796232c0f17f849badd455d42b0277.zip | |
Improve layer mask handling (#13065)
Diffstat (limited to 'quantum')
| -rw-r--r-- | quantum/command.c | 2 | ||||
| -rw-r--r-- | quantum/quantum.c | 8 |
2 files changed, 5 insertions, 5 deletions
diff --git a/quantum/command.c b/quantum/command.c index 34c4b36b1..3a7dc0f8c 100644 --- a/quantum/command.c +++ b/quantum/command.c | |||
| @@ -781,6 +781,6 @@ uint8_t numkey2num(uint8_t code) { | |||
| 781 | 781 | ||
| 782 | static void switch_default_layer(uint8_t layer) { | 782 | static void switch_default_layer(uint8_t layer) { |
| 783 | xprintf("L%d\n", layer); | 783 | xprintf("L%d\n", layer); |
| 784 | default_layer_set(1UL << layer); | 784 | default_layer_set((layer_state_t)1 << layer); |
| 785 | clear_keyboard(); | 785 | clear_keyboard(); |
| 786 | } | 786 | } |
diff --git a/quantum/quantum.c b/quantum/quantum.c index 8ccdb774b..b4cfa28d7 100644 --- a/quantum/quantum.c +++ b/quantum/quantum.c | |||
| @@ -340,13 +340,13 @@ void set_single_persistent_default_layer(uint8_t default_layer) { | |||
| 340 | #if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS) | 340 | #if defined(AUDIO_ENABLE) && defined(DEFAULT_LAYER_SONGS) |
| 341 | PLAY_SONG(default_layer_songs[default_layer]); | 341 | PLAY_SONG(default_layer_songs[default_layer]); |
| 342 | #endif | 342 | #endif |
| 343 | eeconfig_update_default_layer(1U << default_layer); | 343 | eeconfig_update_default_layer((layer_state_t)1 << default_layer); |
| 344 | default_layer_set(1U << default_layer); | 344 | default_layer_set((layer_state_t)1 << default_layer); |
| 345 | } | 345 | } |
| 346 | 346 | ||
| 347 | layer_state_t update_tri_layer_state(layer_state_t state, uint8_t layer1, uint8_t layer2, uint8_t layer3) { | 347 | layer_state_t update_tri_layer_state(layer_state_t state, uint8_t layer1, uint8_t layer2, uint8_t layer3) { |
| 348 | layer_state_t mask12 = (1UL << layer1) | (1UL << layer2); | 348 | layer_state_t mask12 = ((layer_state_t)1 << layer1) | ((layer_state_t)1 << layer2); |
| 349 | layer_state_t mask3 = 1UL << layer3; | 349 | layer_state_t mask3 = (layer_state_t)1 << layer3; |
| 350 | return (state & mask12) == mask12 ? (state | mask3) : (state & ~mask3); | 350 | return (state & mask12) == mask12 ? (state | mask3) : (state & ~mask3); |
| 351 | } | 351 | } |
| 352 | 352 | ||
