diff options
author | nicm <nicm> | 2021-10-07 07:52:13 +0000 |
---|---|---|
committer | nicm <nicm> | 2021-10-07 07:52:13 +0000 |
commit | 95744963335389d670997fe943c0859449eddc3e (patch) | |
tree | 7b48185c6b43ab0113cfed7eb6a39e2c969e4218 /cmd-split-window.c | |
parent | 5359b766195528b9a0763c7f5e4ce5f2797a9b09 (diff) | |
download | rtmux-95744963335389d670997fe943c0859449eddc3e.tar.gz rtmux-95744963335389d670997fe943c0859449eddc3e.tar.bz2 rtmux-95744963335389d670997fe943c0859449eddc3e.zip |
Handle splitw -I correctly when used from an attached client, GitHub
issue 2917.
Diffstat (limited to 'cmd-split-window.c')
-rw-r--r-- | cmd-split-window.c | 26 |
1 files changed, 16 insertions, 10 deletions
diff --git a/cmd-split-window.c b/cmd-split-window.c index 92f515ca..0f82e648 100644 --- a/cmd-split-window.c +++ b/cmd-split-window.c @@ -163,16 +163,22 @@ cmd_split_window_exec(struct cmd *self, struct cmdq_item *item) environ_free(sc.environ); return (CMD_RETURN_ERROR); } - if (input && window_pane_start_input(new_wp, item, &cause) != 0) { - server_client_remove_pane(new_wp); - layout_close_pane(new_wp); - window_remove_pane(wp->window, new_wp); - cmdq_error(item, "%s", cause); - free(cause); - if (sc.argv != NULL) - cmd_free_argv(sc.argc, sc.argv); - environ_free(sc.environ); - return (CMD_RETURN_ERROR); + if (input) { + switch (window_pane_start_input(new_wp, item, &cause)) { + case -1: + server_client_remove_pane(new_wp); + layout_close_pane(new_wp); + window_remove_pane(wp->window, new_wp); + cmdq_error(item, "%s", cause); + free(cause); + if (sc.argv != NULL) + cmd_free_argv(sc.argc, sc.argv); + environ_free(sc.environ); + return (CMD_RETURN_ERROR); + case 1: + input = 0; + break; + } } if (!args_has(args, 'd')) cmd_find_from_winlink_pane(current, wl, new_wp, 0); |