diff --git a/quantum/rgblight/rgblight.c b/quantum/rgblight/rgblight.c index 19d80e0097d..e596fef616c 100644 --- a/quantum/rgblight/rgblight.c +++ b/quantum/rgblight/rgblight.c @@ -790,7 +790,12 @@ static void rgblight_layers_write(void) { LED_TYPE *const limit = &led[MIN(segment.index + segment.count, RGBLED_NUM)]; for (LED_TYPE *led_ptr = &led[segment.index]; led_ptr < limit; led_ptr++) { # ifdef RGBLIGHT_LAYERS_RETAIN_VAL - sethsv(segment.hue, segment.sat, current_val, led_ptr); + if (segment.val == 0) { + sethsv(segment.hue, segment.sat, segment.val, led_ptr); + } + else { + sethsv(segment.hue, segment.sat, current_val, led_ptr); + } # else sethsv(segment.hue, segment.sat, segment.val, led_ptr); # endif