aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authornicm <nicm>2015-04-21 22:38:49 +0000
committernicm <nicm>2015-04-21 22:38:49 +0000
commit69f292a90e2fb9d48a77a9753127da13554715de (patch)
treef475d0ba24de5804f2636fecb7447b75675cb947
parent93b2871cab399388a16ace64d8dfb9a8e2143543 (diff)
downloadrtmux-69f292a90e2fb9d48a77a9753127da13554715de.tar.gz
rtmux-69f292a90e2fb9d48a77a9753127da13554715de.tar.bz2
rtmux-69f292a90e2fb9d48a77a9753127da13554715de.zip
Always format real layout even when zoomed.
-rw-r--r--format.c5
-rw-r--r--layout-custom.c4
-rw-r--r--tmux.h2
-rw-r--r--window.c1
4 files changed, 8 insertions, 4 deletions
diff --git a/format.c b/format.c
index 2be9834f..7ded05d2 100644
--- a/format.c
+++ b/format.c
@@ -577,7 +577,10 @@ format_defaults_window(struct format_tree *ft, struct window *w)
ft->w = w;
- layout = layout_dump(w);
+ if (w->saved_layout_root != NULL)
+ layout = layout_dump(w->saved_layout_root);
+ else
+ layout = layout_dump(w->layout_root);
format_add(ft, "window_id", "@%u", w->id);
format_add(ft, "window_name", "%s", w->name);
diff --git a/layout-custom.c b/layout-custom.c
index c9cf49c2..57503518 100644
--- a/layout-custom.c
+++ b/layout-custom.c
@@ -55,12 +55,12 @@ layout_checksum(const char *layout)
/* Dump layout as a string. */
char *
-layout_dump(struct window *w)
+layout_dump(struct layout_cell *root)
{
char layout[BUFSIZ], *out;
*layout = '\0';
- if (layout_append(w->layout_root, layout, sizeof layout) != 0)
+ if (layout_append(root, layout, sizeof layout) != 0)
return (NULL);
xasprintf(&out, "%04x,%s", layout_checksum(layout), layout);
diff --git a/tmux.h b/tmux.h
index 1af4d073..53fd9b28 100644
--- a/tmux.h
+++ b/tmux.h
@@ -2225,7 +2225,7 @@ struct layout_cell *layout_split_pane(
void layout_close_pane(struct window_pane *);
/* layout-custom.c */
-char *layout_dump(struct window *);
+char *layout_dump(struct layout_cell *);
int layout_parse(struct window *, const char *);
/* layout-set.c */
diff --git a/window.c b/window.c
index 86cc8bb0..3c8d4955 100644
--- a/window.c
+++ b/window.c
@@ -519,6 +519,7 @@ window_unzoom(struct window *w)
w->flags &= ~WINDOW_ZOOMED;
layout_free(w);
w->layout_root = w->saved_layout_root;
+ w->saved_layout_root = NULL;
TAILQ_FOREACH(wp, &w->panes, entry) {
wp->layout_cell = wp->saved_layout_cell;