From 85f5485cb5e46d6d574b7a1b8c1357c85b528e2b Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Sun, 1 Apr 2012 13:18:38 +0000 Subject: Add a layout history which can be stepped through with select-layout -u and -U commands (bound to 'u' and 'U' by default). --- tmux.h | 16 +++++++++++++++- 1 file changed, 15 insertions(+), 1 deletion(-) (limited to 'tmux.h') diff --git a/tmux.h b/tmux.h index 87a15485..9d8ca08a 100644 --- a/tmux.h +++ b/tmux.h @@ -851,6 +851,13 @@ struct window_pane { TAILQ_HEAD(window_panes, window_pane); RB_HEAD(window_pane_tree, window_pane); +/* Window last layout. */ +struct last_layout { + char *layout; + + TAILQ_ENTRY(last_layout) entry; +}; + /* Window structure. */ struct window { u_int id; @@ -864,6 +871,9 @@ struct window { int lastlayout; struct layout_cell *layout_root; + TAILQ_HEAD(last_layouts, last_layout) layout_list; + u_int layout_list_size; + struct last_layout *layout_list_last; u_int sx; u_int sy; @@ -1998,7 +2008,8 @@ u_int layout_count_cells(struct layout_cell *); struct layout_cell *layout_create_cell(struct layout_cell *); void layout_free_cell(struct layout_cell *); void layout_print_cell(struct layout_cell *, const char *, u_int); -void layout_destroy_cell(struct layout_cell *, struct layout_cell **); +void layout_destroy_cell( + struct layout_cell *, struct layout_cell **); void layout_set_size( struct layout_cell *, u_int, u_int, u_int, u_int); void layout_make_leaf( @@ -2020,6 +2031,9 @@ void layout_assign_pane(struct layout_cell *, struct window_pane *); struct layout_cell *layout_split_pane( struct window_pane *, enum layout_type, int, int); void layout_close_pane(struct window_pane *); +void layout_list_add(struct window *); +const char *layout_list_redo(struct window *); +const char *layout_list_undo(struct window *); /* layout-custom.c */ char *layout_dump(struct window *); -- cgit