mirror of
https://github.com/tmux/tmux.git
synced 2024-11-16 09:28:51 +00:00
Merge branch 'obsd-master'
This commit is contained in:
commit
5a97af7961
@ -450,8 +450,7 @@ layout_set_tiled(struct window *w)
|
||||
/* Free old tree and create a new root. */
|
||||
layout_free(w);
|
||||
lc = w->layout_root = layout_create_cell(NULL);
|
||||
layout_set_size(lc, (width + 1) * columns - 1,
|
||||
(height + 1) * rows - 1, 0, 0);
|
||||
layout_set_size(lc, w->sx, w->sy, 0, 0);
|
||||
layout_make_node(lc, LAYOUT_TOPBOTTOM);
|
||||
|
||||
/* Create a grid of the cells. */
|
||||
|
19
layout.c
19
layout.c
@ -722,7 +722,7 @@ layout_set_size_check(struct window *w, struct layout_cell *lc,
|
||||
enum layout_type type, int size)
|
||||
{
|
||||
struct layout_cell *lcchild;
|
||||
u_int new_size, available, previous, count, idx;
|
||||
u_int new_size, available, previous, count, idx;
|
||||
|
||||
/* Cells with no children must just be bigger than minimum. */
|
||||
if (lc->type == LAYOUT_WINDOWPANE)
|
||||
@ -736,6 +736,9 @@ layout_set_size_check(struct window *w, struct layout_cell *lc,
|
||||
|
||||
/* Check new size will work for each child. */
|
||||
if (lc->type == type) {
|
||||
if (available < (count * 2) - 1)
|
||||
return (0);
|
||||
|
||||
if (type == LAYOUT_LEFTRIGHT)
|
||||
previous = lc->sx;
|
||||
else
|
||||
@ -745,13 +748,17 @@ layout_set_size_check(struct window *w, struct layout_cell *lc,
|
||||
TAILQ_FOREACH(lcchild, &lc->cells, entry) {
|
||||
new_size = layout_new_pane_size(w, previous, lcchild,
|
||||
type, size, count - idx, available);
|
||||
if (new_size > available)
|
||||
return (0);
|
||||
|
||||
available -= (new_size + 1);
|
||||
if (idx == count - 1) {
|
||||
if (new_size > available)
|
||||
return (0);
|
||||
available -= new_size;
|
||||
} else {
|
||||
if (new_size + 1 > available)
|
||||
return (0);
|
||||
available -= new_size + 1;
|
||||
}
|
||||
if (!layout_set_size_check(w, lcchild, type, new_size))
|
||||
return (0);
|
||||
|
||||
idx++;
|
||||
}
|
||||
} else {
|
||||
|
Loading…
Reference in New Issue
Block a user