diff options
author | Nicholas Marriott <nicholas.marriott@gmail.com> | 2014-12-15 09:24:15 +0000 |
---|---|---|
committer | Nicholas Marriott <nicholas.marriott@gmail.com> | 2014-12-15 09:24:15 +0000 |
commit | f495b150fa06cf0556159fe15e0dd2e0a09bb445 (patch) | |
tree | 7c48105f6febbe65b9cbed3027bffc1b8bc6e0d5 /resize.c | |
parent | 3771ab7c67ed002faa980b353bcc858669131b58 (diff) | |
parent | ccbe2545d9857e03731eddb9757989b9f52dc785 (diff) | |
download | rtmux-f495b150fa06cf0556159fe15e0dd2e0a09bb445.tar.gz rtmux-f495b150fa06cf0556159fe15e0dd2e0a09bb445.tar.bz2 rtmux-f495b150fa06cf0556159fe15e0dd2e0a09bb445.zip |
Merge branch 'master' of ssh://git.code.sf.net/p/tmux/tmux-code
Diffstat (limited to 'resize.c')
-rw-r--r-- | resize.c | 14 |
1 files changed, 11 insertions, 3 deletions
@@ -50,7 +50,7 @@ recalculate_sizes(void) struct window *w; struct window_pane *wp; u_int i, j, ssx, ssy, has, limit; - int flag, has_status, is_zoomed; + int flag, has_status, is_zoomed, forced; RB_FOREACH(s, sessions, &sessions) { has_status = options_get_number(&s->options, "status"); @@ -116,18 +116,26 @@ recalculate_sizes(void) if (ssx == UINT_MAX || ssy == UINT_MAX) continue; + forced = 0; limit = options_get_number(&w->options, "force-width"); - if (limit >= PANE_MINIMUM && ssx > limit) + if (limit >= PANE_MINIMUM && ssx > limit) { ssx = limit; + forced |= WINDOW_FORCEWIDTH; + } limit = options_get_number(&w->options, "force-height"); - if (limit >= PANE_MINIMUM && ssy > limit) + if (limit >= PANE_MINIMUM && ssy > limit) { ssy = limit; + forced |= WINDOW_FORCEHEIGHT; + } if (w->sx == ssx && w->sy == ssy) continue; log_debug("window size %u,%u (was %u,%u)", ssx, ssy, w->sx, w->sy); + w->flags &= ~(WINDOW_FORCEWIDTH|WINDOW_FORCEHEIGHT); + w->flags |= forced; + is_zoomed = w->flags & WINDOW_ZOOMED; if (is_zoomed) window_unzoom(w); |