From 0f243f03882671f19d35c9bd2decfc94919979fa Mon Sep 17 00:00:00 2001 From: nicm Date: Wed, 14 Aug 2019 09:58:31 +0000 Subject: Add -Z flag to rotate-window, select-pane, swap-pane, switch-client to preserve zoomed state. GitHub issue 1839. --- window.c | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) (limited to 'window.c') 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) -- cgit