5 Commits
2.9 ... 2.9a

Author SHA1 Message Date
Nicholas Marriott
4cb13d95ba Add to CHANGES. 2019-05-01 07:16:20 +01:00
Nicholas Marriott
e36d6ee06a Version 2.9a. 2019-05-01 07:12:14 +01:00
nicm
901eed7b71 Do not loop forever if there is a nonprintable character in the format. 2019-05-01 07:12:02 +01:00
nicm
750d5830c2 Don't redraw control clients, from George Nachman. 2019-05-01 07:08:04 +01:00
nicm
e286178aa7 Unbreak main-vertical and main-horizontal layouts. 2019-05-01 07:07:52 +01:00
4 changed files with 43 additions and 27 deletions

View File

@@ -1,3 +1,7 @@
CHANGES FROM 2.9 to 2.9a
* Fix bugs in select-pane and the main-horizontal and main-vertical layouts.
CHANGES FROM 2.8 to 2.9 CHANGES FROM 2.8 to 2.9
* Attempt to preserve horizontal cursor position as well as vertical with * Attempt to preserve horizontal cursor position as well as vertical with

View File

@@ -66,7 +66,7 @@ cmd_select_pane_redraw(struct window *w)
*/ */
TAILQ_FOREACH(c, &clients, entry) { TAILQ_FOREACH(c, &clients, entry) {
if (c->session == NULL) if (c->session == NULL || (c->flags & CLIENT_CONTROL))
continue; continue;
if (c->session->curw->window == w && tty_window_bigger(&c->tty)) if (c->session->curw->window == w && tty_window_bigger(&c->tty))
server_redraw_client(c); server_redraw_client(c);

View File

@@ -1,6 +1,6 @@
# configure.ac # configure.ac
AC_INIT([tmux], 2.9) AC_INIT([tmux], 2.9a)
AC_PREREQ([2.60]) AC_PREREQ([2.60])
AC_CONFIG_AUX_DIR(etc) AC_CONFIG_AUX_DIR(etc)

View File

@@ -213,7 +213,7 @@ layout_set_main_h(struct window *w)
mainh = w->sy - otherh; mainh = w->sy - otherh;
} }
/* Work out what height is needed. */ /* Work out what width is needed. */
sx = (n * (PANE_MINIMUM + 1)) - 1; sx = (n * (PANE_MINIMUM + 1)) - 1;
if (sx < w->sx) if (sx < w->sx)
sx = w->sx; sx = w->sx;
@@ -221,7 +221,7 @@ layout_set_main_h(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, sx, mainh + otherh + 1, 0, 0); layout_set_size(lc, sx, mainh + otherh, 0, 0);
layout_make_node(lc, LAYOUT_TOPBOTTOM); layout_make_node(lc, LAYOUT_TOPBOTTOM);
/* Create the main pane. */ /* Create the main pane. */
@@ -233,19 +233,25 @@ layout_set_main_h(struct window *w)
/* Create the other pane. */ /* Create the other pane. */
lcother = layout_create_cell(lc); lcother = layout_create_cell(lc);
layout_set_size(lcother, sx, otherh, 0, 0); layout_set_size(lcother, sx, otherh, 0, 0);
layout_make_node(lcother, LAYOUT_LEFTRIGHT); if (n == 1) {
TAILQ_INSERT_TAIL(&lc->cells, lcother, entry); 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. */ /* Add the remaining panes as children. */
TAILQ_FOREACH(wp, &w->panes, entry) { TAILQ_FOREACH(wp, &w->panes, entry) {
if (wp == TAILQ_FIRST(&w->panes)) if (wp == TAILQ_FIRST(&w->panes))
continue; continue;
lcchild = layout_create_cell(lc); lcchild = layout_create_cell(lcother);
layout_set_size(lcchild, PANE_MINIMUM, otherh, 0, 0); layout_set_size(lcchild, PANE_MINIMUM, otherh, 0, 0);
layout_make_leaf(lcchild, wp); layout_make_leaf(lcchild, wp);
TAILQ_INSERT_TAIL(&lcother->cells, lcchild, entry); TAILQ_INSERT_TAIL(&lcother->cells, lcchild, entry);
}
layout_spread_cell(w, lcother);
} }
layout_spread_cell(w, lcother);
/* Fix cell offsets. */ /* Fix cell offsets. */
layout_fix_offsets(lc); layout_fix_offsets(lc);
@@ -299,7 +305,7 @@ layout_set_main_v(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, mainw + otherw + 1, sy, 0, 0); layout_set_size(lc, mainw + otherw, sy, 0, 0);
layout_make_node(lc, LAYOUT_LEFTRIGHT); layout_make_node(lc, LAYOUT_LEFTRIGHT);
/* Create the main pane. */ /* Create the main pane. */
@@ -311,19 +317,25 @@ layout_set_main_v(struct window *w)
/* Create the other pane. */ /* Create the other pane. */
lcother = layout_create_cell(lc); lcother = layout_create_cell(lc);
layout_set_size(lcother, otherw, sy, 0, 0); layout_set_size(lcother, otherw, sy, 0, 0);
layout_make_node(lcother, LAYOUT_TOPBOTTOM); if (n == 1) {
TAILQ_INSERT_TAIL(&lc->cells, lcother, entry); 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. */ /* Add the remaining panes as children. */
TAILQ_FOREACH(wp, &w->panes, entry) { TAILQ_FOREACH(wp, &w->panes, entry) {
if (wp == TAILQ_FIRST(&w->panes)) if (wp == TAILQ_FIRST(&w->panes))
continue; continue;
lcchild = layout_create_cell(lc); lcchild = layout_create_cell(lcother);
layout_set_size(lcchild, otherw, PANE_MINIMUM, 0, 0); layout_set_size(lcchild, otherw, PANE_MINIMUM, 0, 0);
layout_make_leaf(lcchild, wp); layout_make_leaf(lcchild, wp);
TAILQ_INSERT_TAIL(&lcother->cells, lcchild, entry); TAILQ_INSERT_TAIL(&lcother->cells, lcchild, entry);
}
layout_spread_cell(w, lcother);
} }
layout_spread_cell(w, lcother);
/* Fix cell offsets. */ /* Fix cell offsets. */
layout_fix_offsets(lc); layout_fix_offsets(lc);