diff options
author | Erik Reider <[email protected]> | 2023-07-03 18:45:26 +0200 |
---|---|---|
committer | GitHub <[email protected]> | 2023-07-03 18:45:26 +0200 |
commit | cda17aee16f004f034e7f75dd81113833a485216 (patch) | |
tree | 8a95971fd79840a865f8a3bcc1140b39c1acb7e0 /sway | |
parent | edd7aa72bc4ea8766d6a82325d7c9b36fe9a2025 (diff) |
Fixed blur/surfaces dst_box not being offset by the titlebar height (#185)
Diffstat (limited to 'sway')
-rw-r--r-- | sway/desktop/render.c | 26 |
1 files changed, 22 insertions, 4 deletions
diff --git a/sway/desktop/render.c b/sway/desktop/render.c index 4ebfb941..50f7d70b 100644 --- a/sway/desktop/render.c +++ b/sway/desktop/render.c @@ -723,9 +723,18 @@ static void render_view_toplevels(struct sway_view *view, struct sway_output *ou if (state.fullscreen_mode == FULLSCREEN_NONE && (state.border == B_PIXEL || state.border == B_NORMAL)) { clip_box.x += state.border_thickness; - clip_box.y += state.border_thickness; clip_box.width -= state.border_thickness * 2; - clip_box.height -= state.border_thickness * 2; + + if (deco_data.has_titlebar) { + // Shift the box downward to compensate for the titlebar + int titlebar_thickness = container_titlebar_height(); + clip_box.y += titlebar_thickness; + clip_box.height -= state.border_thickness + titlebar_thickness; + } else { + // Regular border + clip_box.y += state.border_thickness; + clip_box.height -= state.border_thickness * 2; + } } data.clip_box = &clip_box; @@ -788,9 +797,18 @@ static void render_saved_view(struct sway_view *view, struct sway_output *output dst_box.height = state.height; if (state.border == B_PIXEL || state.border == B_NORMAL) { dst_box.x += state.border_thickness; - dst_box.y += state.border_thickness; dst_box.width -= state.border_thickness * 2; - dst_box.height -= state.border_thickness * 2; + + if (deco_data.has_titlebar) { + // Shift the box downward to compensate for the titlebar + int titlebar_thickness = container_titlebar_height(); + dst_box.y += titlebar_thickness; + dst_box.height -= state.border_thickness + titlebar_thickness; + } else { + // Regular border + dst_box.y += state.border_thickness; + dst_box.height -= state.border_thickness * 2; + } } scale_box(&dst_box, wlr_output->scale); |