summaryrefslogtreecommitdiffstats
path: root/window.c
diff options
context:
space:
mode:
authornicm <nicm>2019-08-14 09:58:31 +0000
committernicm <nicm>2019-08-14 09:58:31 +0000
commit0f243f03882671f19d35c9bd2decfc94919979fa (patch)
tree05436a488884f13a8c8b9910983a497580ac3c90 /window.c
parent45f4ff54850ff9b448070a96b33e63451f973e33 (diff)
Add -Z flag to rotate-window, select-pane, swap-pane, switch-client to
preserve zoomed state. GitHub issue 1839.
Diffstat (limited to 'window.c')
-rw-r--r--window.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/window.c b/window.c
index 06145221..bf4fbb70 100644
--- a/window.c
+++ b/window.c
@@ -587,6 +587,28 @@ window_unzoom(struct window *w)
return (0);
}
+int
+window_push_zoom(struct window *w, int flag)
+{
+ log_debug("%s: @%u %d", __func__, w->id,
+ flag && (w->flags & WINDOW_ZOOMED));
+ if (flag && (w->flags & WINDOW_ZOOMED))
+ w->flags |= WINDOW_WASZOOMED;
+ else
+ w->flags &= ~WINDOW_WASZOOMED;
+ return (window_unzoom(w) == 0);
+}
+
+int
+window_pop_zoom(struct window *w)
+{
+ log_debug("%s: @%u %d", __func__, w->id,
+ !!(w->flags & WINDOW_WASZOOMED));
+ if (w->flags & WINDOW_WASZOOMED)
+ return (window_zoom(w->active) == 0);
+ return (0);
+}
+
struct window_pane *
window_add_pane(struct window *w, struct window_pane *other, u_int hlimit,
int flags)