opt: fix for config change

This commit is contained in:
DreamMaoMao 2026-03-13 12:14:41 +08:00
parent f23da9d98b
commit 0e5e86b3f8
4 changed files with 11 additions and 25 deletions

View file

@ -251,7 +251,7 @@ void buffer_set_effect(Client *c, BufferData data) {
data.corner_location = corner_radii_none();
}
if (blur && !c->noblur) {
if (config.blur && !c->noblur) {
wlr_scene_blur_set_corner_radii(c->blur, data.corner_location);
}
wlr_scene_node_for_each_buffer(&c->scene_surface->node,
@ -355,7 +355,7 @@ void client_draw_shadow(Client *c) {
}
void client_draw_blur(Client *c, struct wlr_box clip_box, struct ivec2 offset) {
if (blur && !c->noblur) {
if (config.blur && !c->noblur && c->blur) {
wlr_scene_node_set_position(&c->blur->node, offset.x, offset.y);
wlr_scene_blur_set_size(c->blur, clip_box.width - c->bw,
clip_box.height - c->bw);
@ -1016,7 +1016,7 @@ void resize(Client *c, struct wlr_box geo, int32_t interact) {
apply_border(c);
client_get_clip(c, &clip);
wlr_scene_subsurface_tree_set_clip(&c->scene_surface->node, &clip);
if (blur && !c->noblur)
if (config.blur && !c->noblur)
wlr_scene_blur_set_size(c->blur,
c->animation.current.width - 2 * c->bw,
c->animation.current.height - 2 * c->bw);
@ -1139,14 +1139,14 @@ bool client_apply_focus_opacity(Client *c) {
sizeof(c->opacity_animation.current_border_color));
c->opacity_animation.current_opacity = target_opacity;
client_set_opacity(c, target_opacity);
if (blur && !c->noblur && !blur_optimized) {
if (config.blur && !c->noblur && !config.blur_optimized) {
wlr_scene_blur_set_strength(
c->blur, MIN(percent * (1.0 - fadein_begin_opacity) +
fadein_begin_opacity,
c->blur, MIN(percent * (1.0 - config.fadein_begin_opacity) +
config.fadein_begin_opacity,
1.0));
wlr_scene_blur_set_alpha(
c->blur, MIN(percent * (1.0 - fadein_begin_opacity) +
fadein_begin_opacity,
c->blur, MIN(percent * (1.0 - config.fadein_begin_opacity) +
config.fadein_begin_opacity,
1.0));
}
client_set_border_color(c, c->opacity_animation.target_border_color);

View file

@ -328,7 +328,7 @@ void layer_animation_next_tick(LayerSurface *l) {
1.0f);
if (config.animation_fade_in) {
if (blur && !l->noblur && !config.blur_optimized) {
if (config.blur && !l->noblur && !config.blur_optimized) {
wlr_scene_blur_set_strength(l->blur, opacity);
wlr_scene_blur_set_alpha(l->blur, opacity);
}
@ -362,7 +362,7 @@ void layer_animation_next_tick(LayerSurface *l) {
.height = height,
};
if (blur && blur_layer && !l->noblur && l->blur)
if (config.blur && config.blur_layer && !l->noblur && l->blur)
wlr_scene_blur_set_size(l->blur, l->animation.current.width,
l->animation.current.height);

View file

@ -3352,7 +3352,6 @@ void set_value_default() {
config.blur_layer = 0;
config.blur_optimized = 1;
config.border_radius = 0;
config.border_radius_location_default = CORNER_LOCATION_ALL;
config.blur_params.num_passes = 1;
config.blur_params.radius = 5;
config.blur_params.noise = 0.02f;

View file

@ -2360,19 +2360,6 @@ static void iter_layer_scene_buffers(struct wlr_scene_buffer *buffer,
}
}
void layer_flush_blur_background(LayerSurface *l) {
if (!blur)
return;
// 如果背景层发生变化,标记优化的模糊背景缓存需要更新
if (l->layer_surface->current.layer ==
ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND) {
if (l->mon) {
wlr_scene_optimized_blur_mark_dirty(l->mon->blur);
}
}
}
void layer_flush_blur_background(LayerSurface *l) {
if (!config.blur)
return;
@ -2430,7 +2417,7 @@ void maplayersurfacenotify(struct wl_listener *listener, void *data) {
if (layer_surface->current.layer != ZWLR_LAYER_SHELL_V1_LAYER_BOTTOM &&
layer_surface->current.layer != ZWLR_LAYER_SHELL_V1_LAYER_BACKGROUND) {
if (layer_surface->current.exclusive_zone == 0) {
l->shadow = wlr_scene_shadow_create(l->scene, 0, 0, border_radius,
l->shadow = wlr_scene_shadow_create(l->scene, 0, 0, config.border_radius,
config.shadows_blur, config.shadowscolor);
wlr_scene_node_lower_to_bottom(&l->shadow->node);
wlr_scene_node_set_enabled(&l->shadow->node, true);