diff options
-rw-r--r-- | src/gaps.c | 8 | ||||
-rw-r--r-- | src/render.c | 23 |
2 files changed, 20 insertions, 11 deletions
@@ -27,7 +27,7 @@ gaps_t calculate_effective_gaps(Con *con) { return (gaps_t){0, 0, 0, 0, 0}; gaps_t gaps = { - .inner = (workspace->gaps.inner + config.gaps.inner) / 2, + .inner = (workspace->gaps.inner + config.gaps.inner), .top = 0, .right = 0, .bottom = 0, @@ -40,12 +40,6 @@ gaps_t calculate_effective_gaps(Con *con) { gaps.left = workspace->gaps.left + config.gaps.left; } - /* Outer gaps are added on top of inner gaps. */ - gaps.top += 2 * gaps.inner; - gaps.right += 2 * gaps.inner; - gaps.bottom += 2 * gaps.inner; - gaps.left += 2 * gaps.inner; - return gaps; } diff --git a/src/render.c b/src/render.c index fc2cedd9..b9fa3903 100644 --- a/src/render.c +++ b/src/render.c @@ -49,13 +49,28 @@ void render_con(Con *con) { DLOG("Rendering node %p / %s / layout %d / children %d\n", con, con->name, con->layout, params.children); + if (con->type == CT_WORKSPACE) { + gaps_t gaps = calculate_effective_gaps(con); + Rect inset = (Rect){ + gaps.left, + gaps.top, + -(gaps.left + gaps.right), + -(gaps.top + gaps.bottom), + }; + con->rect = rect_add(con->rect, inset); + params.rect = rect_add(params.rect, inset); + params.x += gaps.left; + params.y += gaps.top; + } + if (gaps_should_inset_con(con, params.children)) { gaps_t gaps = calculate_effective_gaps(con); Rect inset = (Rect){ - gaps_has_adjacent_container(con, D_LEFT) ? gaps.inner : gaps.left, - gaps_has_adjacent_container(con, D_UP) ? gaps.inner : gaps.top, - gaps_has_adjacent_container(con, D_RIGHT) ? -gaps.inner : -gaps.right, - gaps_has_adjacent_container(con, D_DOWN) ? -gaps.inner : -gaps.bottom}; + gaps_has_adjacent_container(con, D_LEFT) ? gaps.inner / 2 : gaps.inner, + gaps_has_adjacent_container(con, D_UP) ? gaps.inner / 2 : gaps.inner, + gaps_has_adjacent_container(con, D_RIGHT) ? -(gaps.inner / 2) : -gaps.inner, + gaps_has_adjacent_container(con, D_DOWN) ? -(gaps.inner / 2) : -gaps.inner, + }; inset.width -= inset.x; inset.height -= inset.y; |