fix: paint layer colors on effect entry and RGB toggle
- select_effect: clear pixels + paint current layer when entering effect #4 - select_effect: restart tick timer when leaving effect #4 for normal effects - on: paint current layer when toggling RGB on while on effect #4 Fixes: underglow stuck on old colors, frozen display until layer switch, cycling effects requiring off/on toggle.
This commit is contained in:
parent
89a8f1e664
commit
d94d1597c1
1 changed files with 13 additions and 0 deletions
|
|
@ -625,6 +625,8 @@ int zmk_rgb_underglow_on(void) {
|
||||||
#if IS_ENABLED(UNDERGLOW_LAYER_ENABLED)
|
#if IS_ENABLED(UNDERGLOW_LAYER_ENABLED)
|
||||||
if (state.current_effect == UNDERGLOW_EFFECT_LAYER_INDICATORS) {
|
if (state.current_effect == UNDERGLOW_EFFECT_LAYER_INDICATORS) {
|
||||||
state.layer_enabled = true;
|
state.layer_enabled = true;
|
||||||
|
memset(pixels, 0, sizeof(struct led_rgb) * STRIP_NUM_PIXELS);
|
||||||
|
zmk_rgb_underglow_set_layer(rgb_underglow_top_layer(), false);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
return zmk_rgb_underglow_save_state();
|
return zmk_rgb_underglow_save_state();
|
||||||
|
|
@ -683,10 +685,21 @@ int zmk_rgb_underglow_select_effect(int effect) {
|
||||||
return -EINVAL;
|
return -EINVAL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#if IS_ENABLED(UNDERGLOW_LAYER_ENABLED)
|
||||||
|
bool was_layer = state.layer_enabled;
|
||||||
|
#endif
|
||||||
|
|
||||||
state.current_effect = effect;
|
state.current_effect = effect;
|
||||||
state.animation_step = 0;
|
state.animation_step = 0;
|
||||||
|
|
||||||
#if IS_ENABLED(UNDERGLOW_LAYER_ENABLED)
|
#if IS_ENABLED(UNDERGLOW_LAYER_ENABLED)
|
||||||
state.layer_enabled = (effect == UNDERGLOW_EFFECT_LAYER_INDICATORS);
|
state.layer_enabled = (effect == UNDERGLOW_EFFECT_LAYER_INDICATORS);
|
||||||
|
if (state.layer_enabled && state.on) {
|
||||||
|
memset(pixels, 0, sizeof(struct led_rgb) * STRIP_NUM_PIXELS);
|
||||||
|
zmk_rgb_underglow_set_layer(rgb_underglow_top_layer(), false);
|
||||||
|
} else if (was_layer && !state.layer_enabled && state.on) {
|
||||||
|
k_timer_start(&underglow_tick, K_NO_WAIT, K_MSEC(25));
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
return zmk_rgb_underglow_save_state();
|
return zmk_rgb_underglow_save_state();
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue