diff options
author | Thomas Adam <thomas@xteddy.org> | 2015-12-17 00:01:08 +0000 |
---|---|---|
committer | Thomas Adam <thomas@xteddy.org> | 2015-12-17 00:01:08 +0000 |
commit | e0cae08c04a1adca313ec94b7557496142cc2173 (patch) | |
tree | b46acbb209ba4514de75ce8aafe2163f1f97048b /server-fn.c | |
parent | 7c94dae702798db66424897159a44832f5dbc392 (diff) | |
parent | 99e9a4c7864c188857fe57b411312ee669f16b54 (diff) | |
download | rtmux-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.c | 9 |
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 |