diff options
author | William McKinnon <[email protected]> | 2023-04-18 19:04:00 -0400 |
---|---|---|
committer | William McKinnon <[email protected]> | 2023-04-18 19:04:00 -0400 |
commit | 3f00052a9060764104c0fe1207640c870aea1290 (patch) | |
tree | a8e4af0e0bb28c6486f0ee18e2894d0f3b1f93db /sway/desktop/render.c | |
parent | e02e338d454e49af009ecb1804a4b7141b93ceb5 (diff) |
fixed shadow corner_radius scaling
Diffstat (limited to 'sway/desktop/render.c')
-rw-r--r-- | sway/desktop/render.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/sway/desktop/render.c b/sway/desktop/render.c index d7869ee3..9415d469 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -783,20 +783,25 @@ static void render_view(struct sway_output *output, pixman_region32_t *damage, return; } + float output_scale = output->wlr_output->scale; + struct wlr_box box; + // render shadow if (con->shadow_enabled && config->shadow_blur_sigma > 0 && config->shadow_color[3] > 0.0) { - struct wlr_box box = { floor(state->x), floor(state->y), state->width, state->height }; - scale_box(&box, output->wlr_output->scale); + box.x = floor(state->x); + box.y = floor(state->y); + box.width = state->width; + box.height = state->height; + scale_box(&box, output_scale); + int scaled_corner_radius = (con->corner_radius + state->border_thickness) * output_scale; render_box_shadow(output, damage, &box, config->shadow_color, config->shadow_blur_sigma, - con->corner_radius + state->border_thickness); + scaled_corner_radius); } if (state->border == B_NONE || state->border == B_CSD) { return; } - struct wlr_box box; - float output_scale = output->wlr_output->scale; float color[4]; if (state->border_left) { |