From ec3efab01ec12aaf6ee0cf8174efdb71b2293190 Mon Sep 17 00:00:00 2001 From: Nicholas Marriott Date: Sun, 8 May 2011 21:30:00 +0000 Subject: [PATCH] Reset last pane properly when using break-pane as well, fixes a problem reported to Debian by Hannes von Haugwitz (bug 622677). --- cmd-break-pane.c | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/cmd-break-pane.c b/cmd-break-pane.c index 4c57a116..f6663149 100644 --- a/cmd-break-pane.c +++ b/cmd-break-pane.c @@ -57,12 +57,18 @@ cmd_break_pane_exec(struct cmd *self, struct cmd_ctx *ctx) return (-1); } - TAILQ_REMOVE(&wl->window->panes, wp, entry); - if (wl->window->active == wp) { - wl->window->active = TAILQ_PREV(wp, window_panes, entry); - if (wl->window->active == NULL) - wl->window->active = TAILQ_NEXT(wp, entry); - } + w = wl->window; + TAILQ_REMOVE(&w->panes, wp, entry); + if (wp == w->active) { + w->active = w->last; + w->last = NULL; + if (w->active == NULL) { + w->active = TAILQ_PREV(wp, window_panes, entry); + if (w->active == NULL) + w->active = TAILQ_NEXT(wp, entry); + } + } else if (wp == w->last) + w->last = NULL; layout_close_pane(wp); w = wp->window = window_create1(s->sx, s->sy); -- 2.11.4.GIT