From 0e7219d437ce565a518b336a5db112eaeaeddc5c Mon Sep 17 00:00:00 2001 From: nicm Date: Tue, 21 Apr 2015 21:24:49 +0000 Subject: Fix moving windows to nonexistent indexes when renumber-windows is off. From Thomas Adam, reported by Daniel Levai and Theo Buehler. --- cmd-move-window.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'cmd-move-window.c') diff --git a/cmd-move-window.c b/cmd-move-window.c index 3064cd6e..e765b625 100644 --- a/cmd-move-window.c +++ b/cmd-move-window.c @@ -51,7 +51,7 @@ cmd_move_window_exec(struct cmd *self, struct cmd_q *cmdq) struct session *src, *dst, *s; struct winlink *wl; char *cause; - int idx, kflag, dflag; + int idx, kflag, dflag, sflag; if (args_has(args, 'r')) { s = cmd_find_session(cmdq, args_get(args, 't'), 0); @@ -71,6 +71,7 @@ cmd_move_window_exec(struct cmd *self, struct cmd_q *cmdq) kflag = args_has(self->args, 'k'); dflag = args_has(self->args, 'd'); + sflag = args_has(self->args, 's'); if (server_link_window(src, wl, dst, idx, kflag, !dflag, &cause) != 0) { cmdq_error(cmdq, "can't link window: %s", cause); @@ -79,6 +80,15 @@ cmd_move_window_exec(struct cmd *self, struct cmd_q *cmdq) } if (self->entry == &cmd_move_window_entry) server_unlink_window(src, wl); + + /* + * Renumber the winlinks in the src session only, the destination + * session already has the correct winlink id to us, either + * automatically or specified by -s. + */ + if (!sflag && options_get_number(&src->options, "renumber-windows")) + session_renumber_windows(src); + recalculate_sizes(); return (CMD_RETURN_NORMAL); -- cgit v1.2.3