summaryrefslogtreecommitdiff
path: root/sway/desktop/render.c
diff options
context:
space:
mode:
authorWilliam McKinnon <[email protected]>2023-05-05 16:07:50 -0400
committerGitHub <[email protected]>2023-05-05 16:07:50 -0400
commit6e53c04abf34599a6c36d1fb57df26d641bee8a1 (patch)
tree991cc5f7d62975ea2d73f1683a91eab4be36d2ec /sway/desktop/render.c
parent94a6340f9fd098784e19757f504c989284e31908 (diff)
fix: shadow clipping & shadow corners (#153)
Diffstat (limited to 'sway/desktop/render.c')
-rw-r--r--sway/desktop/render.c14
1 files changed, 6 insertions, 8 deletions
diff --git a/sway/desktop/render.c b/sway/desktop/render.c
index 18fcfaa6..6316a839 100644
--- a/sway/desktop/render.c
+++ b/sway/desktop/render.c
@@ -675,8 +675,8 @@ void render_box_shadow(struct sway_output *output, pixman_region32_t *output_dam
struct wlr_box box;
memcpy(&box, _box, sizeof(struct wlr_box));
- box.x -= output->lx * wlr_output->scale + blur_sigma;
- box.y -= output->ly * wlr_output->scale + blur_sigma;
+ box.x -= blur_sigma;
+ box.y -= blur_sigma;
box.width += 2 * blur_sigma;
box.height += 2 * blur_sigma;
@@ -875,15 +875,13 @@ static void render_view(struct sway_output *output, pixman_region32_t *damage,
// render shadow
if (con->shadow_enabled && config->shadow_blur_sigma > 0 && config->shadow_color[3] > 0.0) {
- box.x = floor(state->x);
- box.y = floor(state->y);
+ box.x = floor(state->x) - output->lx;
+ box.y = floor(state->y) - output->ly;
box.width = state->width;
box.height = state->height;
scale_box(&box, output_scale);
- int corner_radius = config->smart_corner_radius &&
- output->current.active_workspace->current_gaps.top == 0
- ? 0 : con->corner_radius;
- int scaled_corner_radius = (corner_radius + state->border_thickness) * output_scale;
+ int scaled_corner_radius = deco_data.corner_radius == 0 ?
+ 0 : (deco_data.corner_radius + state->border_thickness) * output_scale;
render_box_shadow(output, damage, &box, config->shadow_color, config->shadow_blur_sigma,
scaled_corner_radius);
}