summaryrefslogtreecommitdiffstats
path: root/window.c
diff options
context:
space:
mode:
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 409f1df5..e003decd 100644
--- a/window.c
+++ b/window.c
@@ -585,6 +585,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)