=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/layout-set.c,v retrieving revision 1.24 retrieving revision 1.25 diff -c -r1.24 -r1.25 *** src/usr.bin/tmux/layout-set.c 2019/04/17 14:44:14 1.24 --- src/usr.bin/tmux/layout-set.c 2019/04/26 10:15:40 1.25 *************** *** 1,4 **** ! /* $OpenBSD: layout-set.c,v 1.24 2019/04/17 14:44:14 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott --- 1,4 ---- ! /* $OpenBSD: layout-set.c,v 1.25 2019/04/26 10:15:40 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott *************** *** 213,219 **** mainh = w->sy - otherh; } ! /* Work out what height is needed. */ sx = (n * (PANE_MINIMUM + 1)) - 1; if (sx < w->sx) sx = w->sx; --- 213,219 ---- mainh = w->sy - otherh; } ! /* Work out what width is needed. */ sx = (n * (PANE_MINIMUM + 1)) - 1; if (sx < w->sx) sx = w->sx; *************** *** 221,227 **** /* Free old tree and create a new root. */ layout_free(w); lc = w->layout_root = layout_create_cell(NULL); ! layout_set_size(lc, sx, mainh + otherh + 1, 0, 0); layout_make_node(lc, LAYOUT_TOPBOTTOM); /* Create the main pane. */ --- 221,227 ---- /* Free old tree and create a new root. */ layout_free(w); lc = w->layout_root = layout_create_cell(NULL); ! layout_set_size(lc, sx, mainh + otherh, 0, 0); layout_make_node(lc, LAYOUT_TOPBOTTOM); /* Create the main pane. */ *************** *** 233,251 **** /* Create the other pane. */ lcother = layout_create_cell(lc); layout_set_size(lcother, sx, otherh, 0, 0); ! layout_make_node(lcother, LAYOUT_LEFTRIGHT); ! TAILQ_INSERT_TAIL(&lc->cells, lcother, entry); ! /* Add the remaining panes as children. */ ! TAILQ_FOREACH(wp, &w->panes, entry) { ! if (wp == TAILQ_FIRST(&w->panes)) ! continue; ! lcchild = layout_create_cell(lc); ! layout_set_size(lcchild, PANE_MINIMUM, otherh, 0, 0); ! layout_make_leaf(lcchild, wp); ! TAILQ_INSERT_TAIL(&lcother->cells, lcchild, entry); } - layout_spread_cell(w, lcother); /* Fix cell offsets. */ layout_fix_offsets(lc); --- 233,257 ---- /* Create the other pane. */ lcother = layout_create_cell(lc); layout_set_size(lcother, sx, otherh, 0, 0); ! if (n == 1) { ! wp = TAILQ_NEXT(TAILQ_FIRST(&w->panes), entry); ! layout_make_leaf(lcother, wp); ! TAILQ_INSERT_TAIL(&lc->cells, lcother, entry); ! } else { ! layout_make_node(lcother, LAYOUT_LEFTRIGHT); ! TAILQ_INSERT_TAIL(&lc->cells, lcother, entry); ! /* Add the remaining panes as children. */ ! TAILQ_FOREACH(wp, &w->panes, entry) { ! if (wp == TAILQ_FIRST(&w->panes)) ! continue; ! lcchild = layout_create_cell(lcother); ! layout_set_size(lcchild, PANE_MINIMUM, otherh, 0, 0); ! layout_make_leaf(lcchild, wp); ! TAILQ_INSERT_TAIL(&lcother->cells, lcchild, entry); ! } ! layout_spread_cell(w, lcother); } /* Fix cell offsets. */ layout_fix_offsets(lc); *************** *** 299,305 **** /* Free old tree and create a new root. */ layout_free(w); lc = w->layout_root = layout_create_cell(NULL); ! layout_set_size(lc, mainw + otherw + 1, sy, 0, 0); layout_make_node(lc, LAYOUT_LEFTRIGHT); /* Create the main pane. */ --- 305,311 ---- /* Free old tree and create a new root. */ layout_free(w); lc = w->layout_root = layout_create_cell(NULL); ! layout_set_size(lc, mainw + otherw, sy, 0, 0); layout_make_node(lc, LAYOUT_LEFTRIGHT); /* Create the main pane. */ *************** *** 311,329 **** /* Create the other pane. */ lcother = layout_create_cell(lc); layout_set_size(lcother, otherw, sy, 0, 0); ! layout_make_node(lcother, LAYOUT_TOPBOTTOM); ! TAILQ_INSERT_TAIL(&lc->cells, lcother, entry); ! /* Add the remaining panes as children. */ ! TAILQ_FOREACH(wp, &w->panes, entry) { ! if (wp == TAILQ_FIRST(&w->panes)) ! continue; ! lcchild = layout_create_cell(lc); ! layout_set_size(lcchild, otherw, PANE_MINIMUM, 0, 0); ! layout_make_leaf(lcchild, wp); ! TAILQ_INSERT_TAIL(&lcother->cells, lcchild, entry); } - layout_spread_cell(w, lcother); /* Fix cell offsets. */ layout_fix_offsets(lc); --- 317,341 ---- /* Create the other pane. */ lcother = layout_create_cell(lc); layout_set_size(lcother, otherw, sy, 0, 0); ! if (n == 1) { ! wp = TAILQ_NEXT(TAILQ_FIRST(&w->panes), entry); ! layout_make_leaf(lcother, wp); ! TAILQ_INSERT_TAIL(&lc->cells, lcother, entry); ! } else { ! layout_make_node(lcother, LAYOUT_TOPBOTTOM); ! TAILQ_INSERT_TAIL(&lc->cells, lcother, entry); ! /* Add the remaining panes as children. */ ! TAILQ_FOREACH(wp, &w->panes, entry) { ! if (wp == TAILQ_FIRST(&w->panes)) ! continue; ! lcchild = layout_create_cell(lcother); ! layout_set_size(lcchild, otherw, PANE_MINIMUM, 0, 0); ! layout_make_leaf(lcchild, wp); ! TAILQ_INSERT_TAIL(&lcother->cells, lcchild, entry); ! } ! layout_spread_cell(w, lcother); } /* Fix cell offsets. */ layout_fix_offsets(lc);