Merge branch 'obsd-master'

This commit is contained in:
Thomas Adam
2015-12-17 00:01:08 +00:00
13 changed files with 128 additions and 41 deletions

View File

@ -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