diff --git a/resize.c b/resize.c index 40a1a016..fc761f34 100644 --- a/resize.c +++ b/resize.c @@ -79,6 +79,8 @@ default_window_size(struct session *s, struct window *w, u_int *sx, u_int *sy, TAILQ_FOREACH(c, &clients, entry) { if (c->session == NULL) continue; + if (c->flags & CLIENT_NOSIZEFLAGS) + continue; if (w != NULL && !session_has(c->session, w)) continue; if (w == NULL && c->session != s) @@ -99,6 +101,8 @@ default_window_size(struct session *s, struct window *w, u_int *sx, u_int *sy, TAILQ_FOREACH(c, &clients, entry) { if (c->session == NULL) continue; + if (c->flags & CLIENT_NOSIZEFLAGS) + continue; if (w != NULL && !session_has(c->session, w)) continue; if (w == NULL && c->session != s) @@ -209,7 +213,7 @@ recalculate_sizes(void) } if (sx == 0 || sy == 0) changed = 0; - } else if (type == WINDOW_SIZE_SMALLEST) { + } else { sx = sy = UINT_MAX; TAILQ_FOREACH(c, &clients, entry) { if ((s = c->session) == NULL) diff --git a/tmux.h b/tmux.h index 6c5d4402..7378927a 100644 --- a/tmux.h +++ b/tmux.h @@ -1357,11 +1357,16 @@ struct client { #define CLIENT_SIZECHANGED 0x400000 #define CLIENT_STATUSOFF 0x800000 #define CLIENT_REDRAWSTATUSALWAYS 0x1000000 -#define CLIENT_ALLREDRAWFLAGS \ - (CLIENT_REDRAWWINDOW| \ - CLIENT_REDRAWSTATUS| \ - CLIENT_REDRAWSTATUSALWAYS| \ +#define CLIENT_ALLREDRAWFLAGS \ + (CLIENT_REDRAWWINDOW| \ + CLIENT_REDRAWSTATUS| \ + CLIENT_REDRAWSTATUSALWAYS| \ CLIENT_REDRAWBORDERS) +#define CLIENT_NOSIZEFLAGS \ + (CLIENT_EXIT| \ + CLIENT_DEAD| \ + CLIENT_SUSPENDED| \ + CLIENT_DETACHING) int flags; struct key_table *keytable;