aboutsummaryrefslogtreecommitdiff
path: root/cmd-new-window.c
diff options
context:
space:
mode:
Diffstat (limited to 'cmd-new-window.c')
-rw-r--r--cmd-new-window.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/cmd-new-window.c b/cmd-new-window.c
index e99a8089..82f1d745 100644
--- a/cmd-new-window.c
+++ b/cmd-new-window.c
@@ -42,7 +42,7 @@ const struct cmd_entry cmd_new_window_entry = {
.usage = "[-adkP] [-c start-directory] [-F format] [-n window-name] "
CMD_TARGET_WINDOW_USAGE " [command]",
- .tflag = CMD_WINDOW_INDEX,
+ .target = { 't', CMD_FIND_WINDOW, CMD_FIND_WINDOW_INDEX },
.flags = 0,
.exec = cmd_new_window_exec
@@ -52,10 +52,11 @@ static enum cmd_retval
cmd_new_window_exec(struct cmd *self, struct cmdq_item *item)
{
struct args *args = self->args;
- struct session *s = item->state.tflag.s;
- struct winlink *wl = item->state.tflag.wl;
- struct client *c = item->state.c;
- int idx = item->state.tflag.idx;
+ struct cmd_find_state *current = &item->shared->current;
+ struct session *s = item->target.s;
+ struct winlink *wl = item->target.wl;
+ struct client *c = cmd_find_client(item, NULL, 1);
+ int idx = item->target.idx;
const char *cmd, *path, *template, *cwd, *to_free;
char **argv, *cause, *cp;
int argc, detached;
@@ -132,6 +133,7 @@ cmd_new_window_exec(struct cmd *self, struct cmdq_item *item)
}
if (!detached) {
session_select(s, wl->idx);
+ cmd_find_from_winlink(current, wl);
server_redraw_session_group(s);
} else
server_status_session_group(s);