From 78595457f965975cf5a24e8bbab6dcb153020b6e Mon Sep 17 00:00:00 2001 From: nicm Date: Sat, 16 May 2020 15:24:28 +0000 Subject: Add 'e' key in buffer mode to open the buffer in an editor. --- popup.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) (limited to 'popup.c') diff --git a/popup.c b/popup.c index 5d39e599..160b5aa3 100644 --- a/popup.c +++ b/popup.c @@ -40,6 +40,8 @@ struct popup_data { struct job *job; struct input_ctx *ictx; int status; + popup_close_cb cb; + void *arg; u_int px; u_int py; @@ -150,6 +152,9 @@ popup_free_cb(struct client *c) struct cmdq_item *item = pd->item; u_int i; + if (pd->cb != NULL) + pd->cb(pd->status, pd->arg); + if (item != NULL) { if (pd->ictx != NULL && cmdq_get_client(item) != NULL && @@ -403,7 +408,7 @@ int popup_display(int flags, struct cmdq_item *item, u_int px, u_int py, u_int sx, u_int sy, u_int nlines, const char **lines, const char *shellcmd, const char *cmd, const char *cwd, struct client *c, - struct cmd_find_state *fs) + struct cmd_find_state *fs, popup_close_cb cb, void *arg) { struct popup_data *pd; u_int i; @@ -422,6 +427,8 @@ popup_display(int flags, struct cmdq_item *item, u_int px, u_int py, u_int sx, pd->c = c; pd->c->references++; + pd->cb = cb; + pd->arg = arg; pd->status = 128 + SIGHUP; if (fs != NULL) -- cgit