summaryrefslogtreecommitdiffstats
path: root/format.c
diff options
context:
space:
mode:
authornicm <nicm>2015-11-13 10:00:26 +0000
committernicm <nicm>2015-11-13 10:00:26 +0000
commit531869bd92f0daff3cc3c3cc0ab273846f411dc8 (patch)
tree717a58746a90959470f7247dc490eb7f295933fb /format.c
parentc5689a5a4031a43769b8b721cafa6d1eab6abc44 (diff)
Add window_visible_layout which ignores zoomed panes and use it for
control mode (which needs to know all panes), from George Nachman.
Diffstat (limited to 'format.c')
-rw-r--r--format.c15
1 files changed, 15 insertions, 0 deletions
diff --git a/format.c b/format.c
index 389026ac..9cfee277 100644
--- a/format.c
+++ b/format.c
@@ -48,6 +48,7 @@ void format_cb_host_short(struct format_tree *, struct format_entry *);
void format_cb_pid(struct format_tree *, struct format_entry *);
void format_cb_session_alerts(struct format_tree *, struct format_entry *);
void format_cb_window_layout(struct format_tree *, struct format_entry *);
+void format_cb_window_visible_layout(struct format_tree *, struct format_entry *);
void format_cb_start_command(struct format_tree *, struct format_entry *);
void format_cb_current_command(struct format_tree *, struct format_entry *);
void format_cb_history_bytes(struct format_tree *, struct format_entry *);
@@ -362,6 +363,18 @@ format_cb_window_layout(struct format_tree *ft, struct format_entry *fe)
fe->value = layout_dump(w->layout_root);
}
+/* Callback for window_visible_layout. */
+void
+format_cb_window_visible_layout(struct format_tree *ft, struct format_entry *fe)
+{
+ struct window *w = ft->w;
+
+ if (w == NULL)
+ return;
+
+ fe->value = layout_dump(w->layout_root);
+}
+
/* Callback for pane_start_command. */
void
format_cb_start_command(struct format_tree *ft, struct format_entry *fe)
@@ -1024,6 +1037,8 @@ format_defaults_window(struct format_tree *ft, struct window *w)
format_add(ft, "window_width", "%u", w->sx);
format_add(ft, "window_height", "%u", w->sy);
format_add_cb(ft, "window_layout", format_cb_window_layout);
+ format_add_cb(ft, "window_visible_layout",
+ format_cb_window_visible_layout);
format_add(ft, "window_panes", "%u", window_count_panes(w));
format_add(ft, "window_zoomed_flag", "%d",
!!(w->flags & WINDOW_ZOOMED));