diff options
-rw-r--r-- | cmd-run-shell.c | 14 | ||||
-rw-r--r-- | server.c | 6 |
2 files changed, 15 insertions, 5 deletions
diff --git a/cmd-run-shell.c b/cmd-run-shell.c index 08f6120a..e5726b26 100644 --- a/cmd-run-shell.c +++ b/cmd-run-shell.c @@ -59,12 +59,20 @@ cmd_run_shell_print(struct job *job, const char *msg) { struct cmd_run_shell_data *cdata = job->data; struct window_pane *wp = NULL; + struct cmd_find_state fs; if (cdata->wp_id != -1) wp = window_pane_find_by_id(cdata->wp_id); - if (cdata->item != NULL && wp == NULL) { - cmdq_print(cdata->item, "%s", msg); - return; + if (wp == NULL) { + if (cdata->item != NULL) { + cmdq_print(cdata->item, "%s", msg); + return; + } + if (cmd_find_current (&fs, NULL, CMD_FIND_QUIET) != 0) + return; + wp = fs.wp; + if (wp == NULL) + return; } if (window_pane_set_mode(wp, &window_copy_mode) == 0) @@ -196,8 +196,10 @@ server_loop(void) do { items = cmdq_next(NULL); - TAILQ_FOREACH(c, &clients, entry) - items += cmdq_next(c); + TAILQ_FOREACH(c, &clients, entry) { + if (c->flags & CLIENT_IDENTIFIED) + items += cmdq_next(c); + } } while (items != 0); server_client_loop(); |