diff --git a/popup.c b/popup.c index 7eff7c14..05ff1b4c 100644 --- a/popup.c +++ b/popup.c @@ -443,8 +443,6 @@ popup_display(int flags, struct cmdq_item *item, u_int px, u_int py, u_int sx, popup_write_screen(c, pd); if (shellcmd != NULL) { - pd->ictx = input_init(NULL); - if (fs != NULL) s = fs->s; else @@ -455,6 +453,7 @@ popup_display(int flags, struct cmdq_item *item, u_int px, u_int py, u_int sx, pd->job = job_run(shellcmd, s, cwd, popup_job_update_cb, popup_job_complete_cb, NULL, pd, jobflags, pd->sx - 2, pd->sy - 2); + pd->ictx = input_init(NULL, job_get_event(pd->job)); } server_client_set_overlay(c, 0, popup_check_cb, popup_mode_cb, diff --git a/spawn.c b/spawn.c index 660ee47d..45243517 100644 --- a/spawn.c +++ b/spawn.c @@ -256,7 +256,7 @@ spawn_pane(struct spawn_context *sc, char **cause) window_pane_reset_mode_all(sc->wp0); screen_reinit(&sc->wp0->base); input_free(sc->wp0->ictx); - sc->wp0->ictx = input_init(sc->wp0); + sc->wp0->ictx = NULL; new_wp = sc->wp0; new_wp->flags &= ~(PANE_STATUSREADY|PANE_STATUSDRAWN); } else if (sc->lc == NULL) {