From e33ba57c13139bc9ae6e92be169de6dc322e38eb Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Thu, 17 Jan 2013 00:11:22 +0000 Subject: Remove the layout undo/redo code which never really worked. --- cmd-resize-pane.c | 1 - cmd-select-layout.c | 45 ++++++++------------------------- key-bindings.c | 2 -- layout.c | 72 ----------------------------------------------------- options-table.c | 7 ------ tmux.1 | 16 +----------- tmux.h | 16 +----------- window.c | 1 - 8 files changed, 12 insertions(+), 148 deletions(-) diff --git a/cmd-resize-pane.c b/cmd-resize-pane.c index 4842d411..c200ee10 100644 --- a/cmd-resize-pane.c +++ b/cmd-resize-pane.c @@ -103,7 +103,6 @@ cmd_resize_pane_exec(struct cmd *self, struct cmd_ctx *ctx) } } - layout_list_add(wp->window); if (args_has(self->args, 'L')) layout_resize_pane(wp, LAYOUT_LEFTRIGHT, -adjust); else if (args_has(self->args, 'R')) diff --git a/cmd-select-layout.c b/cmd-select-layout.c index 982c0b27..3ca8766e 100644 --- a/cmd-select-layout.c +++ b/cmd-select-layout.c @@ -29,8 +29,8 @@ enum cmd_retval cmd_select_layout_exec(struct cmd *, struct cmd_ctx *); const struct cmd_entry cmd_select_layout_entry = { "select-layout", "selectl", - "nprut:", 0, 1, - "[-npUu] " CMD_TARGET_WINDOW_USAGE " [layout-name]", + "npt:", 0, 1, + "[-np] " CMD_TARGET_WINDOW_USAGE " [layout-name]", 0, cmd_select_layout_key_binding, NULL, @@ -76,14 +76,6 @@ cmd_select_layout_key_binding(struct cmd *self, int key) case '5' | KEYC_ESCAPE: self->args = args_create(1, "tiled"); break; - case 'u': - self->args = args_create(0); - args_set(self->args, 'u', NULL); - break; - case 'U': - self->args = args_create(0); - args_set(self->args, 'U', NULL); - break; default: self->args = args_create(0); break; @@ -110,21 +102,6 @@ cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx) if (args_has(self->args, 'p')) previous = 1; - layout_list_add(w); - if (args_has(self->args, 'U')) { - if ((layoutname = layout_list_redo(w)) == NULL) { - ctx->info(ctx, "no more layout history"); - return (CMD_RETURN_ERROR); - } - goto set_layout; - } else if (args_has(self->args, 'u')) { - if ((layoutname = layout_list_undo(w)) == NULL) { - ctx->info(ctx, "no more layout history"); - return (CMD_RETURN_ERROR); - } - goto set_layout; - } - if (next || previous) { if (next) layout = layout_set_next(wl->window); @@ -146,16 +123,14 @@ cmd_select_layout_exec(struct cmd *self, struct cmd_ctx *ctx) return (CMD_RETURN_NORMAL); } - if (args->argc == 0) - return (CMD_RETURN_NORMAL); - layoutname = args->argv[0]; - -set_layout: - if (layout_parse(wl->window, layoutname) == -1) { - ctx->error(ctx, "can't set layout: %s", layoutname); - return (CMD_RETURN_ERROR); + if (args->argc != 0) { + layoutname = args->argv[0]; + if (layout_parse(wl->window, layoutname) == -1) { + ctx->error(ctx, "can't set layout: %s", layoutname); + return (CMD_RETURN_ERROR); + } + server_redraw_window(wl->window); + ctx->info(ctx, "arranging in: %s", layoutname); } - server_redraw_window(wl->window); - ctx->info(ctx, "arranging in: %s", layoutname); return (CMD_RETURN_NORMAL); } diff --git a/key-bindings.c b/key-bindings.c index 8434cc03..5ebde40c 100644 --- a/key-bindings.c +++ b/key-bindings.c @@ -130,7 +130,6 @@ key_bindings_init(void) { '?', 0, &cmd_list_keys_entry }, { 'D', 0, &cmd_choose_client_entry }, { 'L', 0, &cmd_switch_client_entry }, - { 'U', 1, &cmd_select_layout_entry }, { '[', 0, &cmd_copy_mode_entry }, { '\'', 0, &cmd_command_prompt_entry }, { '\002', /* C-b */ 0, &cmd_send_prefix_entry }, @@ -149,7 +148,6 @@ key_bindings_init(void) { 'r', 0, &cmd_refresh_client_entry }, { 's', 0, &cmd_choose_tree_entry }, { 't', 0, &cmd_clock_mode_entry }, - { 'u', 1, &cmd_select_layout_entry }, { 'w', 0, &cmd_choose_window_entry }, { 'x', 0, &cmd_confirm_before_entry }, { '{', 0, &cmd_swap_pane_entry }, diff --git a/layout.c b/layout.c index adae0ec3..7c13b539 100644 --- a/layout.c +++ b/layout.c @@ -19,7 +19,6 @@ #include #include -#include #include "tmux.h" @@ -747,74 +746,3 @@ layout_close_pane(struct window_pane *wp) } notify_window_layout_changed(wp->window); } - -/* Add layout to list. */ -void -layout_list_add(struct window *w) -{ - struct last_layout *ll, *ll_last; - char *layout; - u_int limit; - - layout = layout_dump(w); - - ll_last = w->layout_list_last; - if (ll_last != NULL && strcmp(ll_last->layout, layout) == 0) { - free(layout); - return; - } - - ll = xmalloc(sizeof *ll); - ll->layout = layout; - if (ll_last == NULL) - TAILQ_INSERT_TAIL(&w->layout_list, ll, entry); - else - TAILQ_INSERT_AFTER(&w->layout_list, ll_last, ll, entry); - w->layout_list_size++; - w->layout_list_last = ll; - - limit = options_get_number(&w->options, "layout-history-limit"); - while (w->layout_list_size > limit) { - ll = TAILQ_LAST(&w->layout_list, last_layouts); - if (ll == w->layout_list_last) - ll = TAILQ_FIRST(&w->layout_list); - - TAILQ_REMOVE(&w->layout_list, ll, entry); - w->layout_list_size--; - - free(ll->layout); - free(ll); - } -} - -/* Apply next layout from list. */ -const char * -layout_list_redo(struct window *w) -{ - struct last_layout *ll, *ll_last; - - ll_last = w->layout_list_last; - if (ll_last == NULL) - return (NULL); - ll = TAILQ_NEXT(ll_last, entry); - if (ll == NULL) - return (NULL); - w->layout_list_last = ll; - return (ll->layout); -} - -/* Apply previous layout from list. */ -const char * -layout_list_undo(struct window *w) -{ - struct last_layout *ll, *ll_last; - - ll_last = w->layout_list_last; - if (ll_last == NULL) - return (NULL); - ll = TAILQ_PREV(ll_last, last_layouts, entry); - if (ll == NULL) - return (NULL); - w->layout_list_last = ll; - return (ll->layout); -} diff --git a/options-table.c b/options-table.c index 9baf6835..529b3c26 100644 --- a/options-table.c +++ b/options-table.c @@ -517,13 +517,6 @@ const struct options_table_entry window_options_table[] = { .default_num = 0 }, - { .name = "layout-history-limit", - .type = OPTIONS_TABLE_NUMBER, - .minimum = 1, - .maximum = USHRT_MAX, - .default_num = 20 - }, - { .name = "main-pane-height", .type = OPTIONS_TABLE_NUMBER, .minimum = 1, diff --git a/tmux.1 b/tmux.1 index 975aa103..ceebfcef 100644 --- a/tmux.1 +++ b/tmux.1 @@ -1601,7 +1601,7 @@ lower) with .Fl U or downward (numerically higher). .It Xo Ic select-layout -.Op Fl npUu +.Op Fl np .Op Fl t Ar target-window .Op Ar layout-name .Xc @@ -1618,13 +1618,6 @@ are equivalent to the and .Ic previous-layout commands. -.Pp -.Fl U -and -.Fl u -step forward and back through previous layouts, up to the maximum set by the -.Ic layout-history-limit -option. .It Xo Ic select-pane .Op Fl lDLRU .Op Fl t Ar target-pane @@ -2677,13 +2670,6 @@ or .Ar height . A value of zero restores the default unlimited setting. .Pp -.It Ic layout-history-limit Ar limit -Set the number of previous layouts stored for recovery with -.Ic select-layout -.Fl U -and -.Fl u . -.Pp .It Ic main-pane-height Ar height .It Ic main-pane-width Ar width Set the width or height of the main (left or top) pane in the diff --git a/tmux.h b/tmux.h index d790dd25..9c062d65 100644 --- a/tmux.h +++ b/tmux.h @@ -974,13 +974,6 @@ 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; @@ -994,9 +987,6 @@ 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; @@ -2179,8 +2169,7 @@ 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( @@ -2201,9 +2190,6 @@ 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 *); diff --git a/window.c b/window.c index 97e5b4a3..97168455 100644 --- a/window.c +++ b/window.c @@ -286,7 +286,6 @@ window_create1(u_int sx, u_int sy) w->lastlayout = -1; w->layout_root = NULL; - TAILQ_INIT(&w->layout_list); w->sx = sx; w->sy = sy; -- cgit v1.2.3