=================================================================== RCS file: /cvsrepo/anoncvs/cvs/src/usr.bin/tmux/cmd-break-pane.c,v retrieving revision 1.10 retrieving revision 1.11 diff -u -r1.10 -r1.11 --- src/usr.bin/tmux/cmd-break-pane.c 2011/01/04 00:42:46 1.10 +++ src/usr.bin/tmux/cmd-break-pane.c 2011/05/08 21:30:00 1.11 @@ -1,4 +1,4 @@ -/* $OpenBSD: cmd-break-pane.c,v 1.10 2011/01/04 00:42:46 nicm Exp $ */ +/* $OpenBSD: cmd-break-pane.c,v 1.11 2011/05/08 21:30:00 nicm Exp $ */ /* * Copyright (c) 2009 Nicholas Marriott @@ -57,12 +57,18 @@ 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);