mirror of
https://github.com/tmate-io/tmate.git
synced 2024-12-24 23:59:03 +01:00
Fix moving windows to nonexistent indexes when renumber-windows is
off. From Thomas Adam, reported by Daniel Levai and Theo Buehler.
This commit is contained in:
parent
d1337053b6
commit
0e7219d437
@ -51,7 +51,7 @@ cmd_move_window_exec(struct cmd *self, struct cmd_q *cmdq)
|
|||||||
struct session *src, *dst, *s;
|
struct session *src, *dst, *s;
|
||||||
struct winlink *wl;
|
struct winlink *wl;
|
||||||
char *cause;
|
char *cause;
|
||||||
int idx, kflag, dflag;
|
int idx, kflag, dflag, sflag;
|
||||||
|
|
||||||
if (args_has(args, 'r')) {
|
if (args_has(args, 'r')) {
|
||||||
s = cmd_find_session(cmdq, args_get(args, 't'), 0);
|
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');
|
kflag = args_has(self->args, 'k');
|
||||||
dflag = args_has(self->args, 'd');
|
dflag = args_has(self->args, 'd');
|
||||||
|
sflag = args_has(self->args, 's');
|
||||||
if (server_link_window(src, wl, dst, idx, kflag, !dflag,
|
if (server_link_window(src, wl, dst, idx, kflag, !dflag,
|
||||||
&cause) != 0) {
|
&cause) != 0) {
|
||||||
cmdq_error(cmdq, "can't link window: %s", cause);
|
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)
|
if (self->entry == &cmd_move_window_entry)
|
||||||
server_unlink_window(src, wl);
|
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();
|
recalculate_sizes();
|
||||||
|
|
||||||
return (CMD_RETURN_NORMAL);
|
return (CMD_RETURN_NORMAL);
|
||||||
|
@ -351,7 +351,6 @@ server_unlink_window(struct session *s, struct winlink *wl)
|
|||||||
server_destroy_session_group(s);
|
server_destroy_session_group(s);
|
||||||
else
|
else
|
||||||
server_redraw_session_group(s);
|
server_redraw_session_group(s);
|
||||||
session_renumber_windows(s);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void
|
void
|
||||||
|
Loading…
Reference in New Issue
Block a user