aboutsummaryrefslogtreecommitdiff
path: root/server-fn.c
diff options
context:
space:
mode:
authorThomas Adam <thomas@xteddy.org>2015-12-17 00:01:08 +0000
committerThomas Adam <thomas@xteddy.org>2015-12-17 00:01:08 +0000
commite0cae08c04a1adca313ec94b7557496142cc2173 (patch)
treeb46acbb209ba4514de75ce8aafe2163f1f97048b /server-fn.c
parent7c94dae702798db66424897159a44832f5dbc392 (diff)
parent99e9a4c7864c188857fe57b411312ee669f16b54 (diff)
downloadrtmux-e0cae08c04a1adca313ec94b7557496142cc2173.tar.gz
rtmux-e0cae08c04a1adca313ec94b7557496142cc2173.tar.bz2
rtmux-e0cae08c04a1adca313ec94b7557496142cc2173.zip
Merge branch 'obsd-master'
Diffstat (limited to 'server-fn.c')
-rw-r--r--server-fn.c9
1 files changed, 8 insertions, 1 deletions
diff --git a/server-fn.c b/server-fn.c
index 3afeb090..5c005c6f 100644
--- a/server-fn.c
+++ b/server-fn.c
@@ -291,12 +291,13 @@ server_unlink_window(struct session *s, struct winlink *wl)
}
void
-server_destroy_pane(struct window_pane *wp)
+server_destroy_pane(struct window_pane *wp, int hooks)
{
struct window *w = wp->window;
int old_fd;
struct screen_write_ctx ctx;
struct grid_cell gc;
+ struct cmd_find_state fs;
old_fd = wp->fd;
if (wp->fd != -1) {
@@ -320,6 +321,9 @@ server_destroy_pane(struct window_pane *wp)
screen_write_puts(&ctx, &gc, "Pane is dead");
screen_write_stop(&ctx);
wp->flags |= PANE_REDRAW;
+
+ if (hooks && cmd_find_from_pane(&fs, wp) == 0)
+ hooks_run(hooks_get(fs.s), NULL, &fs, "pane-died");
return;
}
@@ -327,6 +331,9 @@ server_destroy_pane(struct window_pane *wp)
layout_close_pane(wp);
window_remove_pane(w, wp);
+ if (hooks && cmd_find_from_window(&fs, w) == 0)
+ hooks_run(hooks_get(fs.s), NULL, &fs, "pane-exited");
+
if (TAILQ_EMPTY(&w->panes))
server_kill_window(w);
else