|
@@ -127,6 +127,8 @@ LED_TYPE led[RGBLED_NUM];
|
|
|
|
|
|
#ifdef RGBLIGHT_LAYERS
|
|
|
rgblight_segment_t const *const *rgblight_layers = NULL;
|
|
|
+
|
|
|
+static bool deferred_set_layer_state = false;
|
|
|
#endif
|
|
|
|
|
|
rgblight_ranges_t rgblight_ranges = {0, RGBLED_NUM, 0, RGBLED_NUM, RGBLED_NUM};
|
|
@@ -748,17 +750,13 @@ void rgblight_set_layer_state(uint8_t layer, bool enabled) {
|
|
|
rgblight_status.enabled_layer_mask &= ~mask;
|
|
|
}
|
|
|
RGBLIGHT_SPLIT_SET_CHANGE_LAYERS;
|
|
|
-
|
|
|
- if (rgblight_status.timer_enabled == false) {
|
|
|
- rgblight_mode_noeeprom(rgblight_config.mode);
|
|
|
- }
|
|
|
|
|
|
-# ifdef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
|
|
|
-
|
|
|
- if (!rgblight_config.enable) {
|
|
|
- rgblight_set();
|
|
|
- }
|
|
|
-# endif
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ deferred_set_layer_state = true;
|
|
|
}
|
|
|
|
|
|
bool rgblight_get_layer_state(uint8_t layer) {
|
|
@@ -1154,8 +1152,26 @@ void rgblight_task(void) {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-# ifdef RGBLIGHT_LAYER_BLINK
|
|
|
+# ifdef RGBLIGHT_LAYERS
|
|
|
+# ifdef RGBLIGHT_LAYER_BLINK
|
|
|
rgblight_blink_layer_repeat_helper();
|
|
|
+# endif
|
|
|
+
|
|
|
+ if (deferred_set_layer_state) {
|
|
|
+ deferred_set_layer_state = false;
|
|
|
+
|
|
|
+
|
|
|
+ if (rgblight_status.timer_enabled == false) {
|
|
|
+ rgblight_mode_noeeprom(rgblight_config.mode);
|
|
|
+ }
|
|
|
+
|
|
|
+# ifdef RGBLIGHT_LAYERS_OVERRIDE_RGB_OFF
|
|
|
+
|
|
|
+ if (!rgblight_config.enable) {
|
|
|
+ rgblight_set();
|
|
|
+ }
|
|
|
+# endif
|
|
|
+ }
|
|
|
# endif
|
|
|
}
|
|
|
|