mirror of
https://github.com/tmux/tmux.git
synced 2024-11-16 17:39:09 +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. */
|
/* Free old tree and create a new root. */
|
||||||
layout_free(w);
|
layout_free(w);
|
||||||
lc = w->layout_root = layout_create_cell(NULL);
|
lc = w->layout_root = layout_create_cell(NULL);
|
||||||
layout_set_size(lc, (width + 1) * columns - 1,
|
layout_set_size(lc, w->sx, w->sy, 0, 0);
|
||||||
(height + 1) * rows - 1, 0, 0);
|
|
||||||
layout_make_node(lc, LAYOUT_TOPBOTTOM);
|
layout_make_node(lc, LAYOUT_TOPBOTTOM);
|
||||||
|
|
||||||
/* Create a grid of the cells. */
|
/* 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)
|
enum layout_type type, int size)
|
||||||
{
|
{
|
||||||
struct layout_cell *lcchild;
|
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. */
|
/* Cells with no children must just be bigger than minimum. */
|
||||||
if (lc->type == LAYOUT_WINDOWPANE)
|
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. */
|
/* Check new size will work for each child. */
|
||||||
if (lc->type == type) {
|
if (lc->type == type) {
|
||||||
|
if (available < (count * 2) - 1)
|
||||||
|
return (0);
|
||||||
|
|
||||||
if (type == LAYOUT_LEFTRIGHT)
|
if (type == LAYOUT_LEFTRIGHT)
|
||||||
previous = lc->sx;
|
previous = lc->sx;
|
||||||
else
|
else
|
||||||
@ -745,13 +748,17 @@ layout_set_size_check(struct window *w, struct layout_cell *lc,
|
|||||||
TAILQ_FOREACH(lcchild, &lc->cells, entry) {
|
TAILQ_FOREACH(lcchild, &lc->cells, entry) {
|
||||||
new_size = layout_new_pane_size(w, previous, lcchild,
|
new_size = layout_new_pane_size(w, previous, lcchild,
|
||||||
type, size, count - idx, available);
|
type, size, count - idx, available);
|
||||||
if (new_size > available)
|
if (idx == count - 1) {
|
||||||
return (0);
|
if (new_size > available)
|
||||||
|
return (0);
|
||||||
available -= (new_size + 1);
|
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))
|
if (!layout_set_size_check(w, lcchild, type, new_size))
|
||||||
return (0);
|
return (0);
|
||||||
|
|
||||||
idx++;
|
idx++;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
|
Loading…
Reference in New Issue
Block a user