summaryrefslogtreecommitdiffstats
path: root/sway/layout.c
diff options
context:
space:
mode:
Diffstat (limited to 'sway/layout.c')
-rw-r--r--sway/layout.c30
1 files changed, 11 insertions, 19 deletions
diff --git a/sway/layout.c b/sway/layout.c
index daef332a..18202cf2 100644
--- a/sway/layout.c
+++ b/sway/layout.c
@@ -319,14 +319,15 @@ void update_geometry(swayc_t *container) {
319 if (container->type != C_VIEW) { 319 if (container->type != C_VIEW) {
320 return; 320 return;
321 } 321 }
322 int gap = swayc_gap(container);
322 struct wlc_geometry geometry = { 323 struct wlc_geometry geometry = {
323 .origin = { 324 .origin = {
324 .x = container->x + (container->is_floating ? 0 : container->gaps / 2), 325 .x = container->x + (container->is_floating ? 0 : gap / 2),
325 .y = container->y + (container->is_floating ? 0 : container->gaps / 2) 326 .y = container->y + (container->is_floating ? 0 : gap / 2)
326 }, 327 },
327 .size = { 328 .size = {
328 .w = container->width - (container->is_floating ? 0 : container->gaps), 329 .w = container->width - (container->is_floating ? 0 : gap),
329 .h = container->height - (container->is_floating ? 0 : container->gaps) 330 .h = container->height - (container->is_floating ? 0 : gap)
330 } 331 }
331 }; 332 };
332 if (swayc_is_fullscreen(container)) { 333 if (swayc_is_fullscreen(container)) {
@@ -364,10 +365,11 @@ void arrange_windows(swayc_t *container, double width, double height) {
364 x = 0, y = 0; 365 x = 0, y = 0;
365 for (i = 0; i < container->children->length; ++i) { 366 for (i = 0; i < container->children->length; ++i) {
366 swayc_t *child = container->children->items[i]; 367 swayc_t *child = container->children->items[i];
367 child->x = x + container->gaps; 368 int gap = swayc_gap(child);
368 child->y = y + container->gaps; 369 child->x = x + gap;
369 child->width = width - container->gaps * 2; 370 child->y = y + gap;
370 child->height = height - container->gaps * 2; 371 child->width = width - gap * 2;
372 child->height = height - gap * 2;
371 sway_log(L_DEBUG, "Arranging workspace #%d at %f, %f", i, child->x, child->y); 373 sway_log(L_DEBUG, "Arranging workspace #%d at %f, %f", i, child->x, child->y);
372 arrange_windows(child, -1, -1); 374 arrange_windows(child, -1, -1);
373 } 375 }
@@ -582,17 +584,7 @@ void recursive_resize(swayc_t *container, double amount, enum wlc_resize_edge ed
582 layout_match = container->layout == L_VERT; 584 layout_match = container->layout == L_VERT;
583 } 585 }
584 if (container->type == C_VIEW) { 586 if (container->type == C_VIEW) {
585 struct wlc_geometry geometry = { 587 update_geometry(container);
586 .origin = {
587 .x = container->x + container->gaps / 2,
588 .y = container->y + container->gaps / 2
589 },
590 .size = {
591 .w = container->width - container->gaps,
592 .h = container->height - container->gaps
593 }
594 };
595 wlc_view_set_geometry(container->handle, edge, &geometry);
596 return; 588 return;
597 } 589 }
598 if (layout_match) { 590 if (layout_match) {