From 8703e9f2f90e52ca69b7126f1aa03b48f86a67f6 Mon Sep 17 00:00:00 2001 From: Tiago Cunha Date: Sun, 24 Oct 2010 01:32:35 +0000 Subject: [PATCH] Sync OpenBSD patchset 779: When removing a pane, don't change the active pane unless the active pane is actually the one being removed. --- window.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/window.c b/window.c index a1dbe4c2..ef137997 100644 --- a/window.c +++ b/window.c @@ -1,4 +1,4 @@ -/* $Id: window.c,v 1.138 2010-10-24 00:45:57 tcunha Exp $ */ +/* $Id: window.c,v 1.139 2010-10-24 01:32:35 tcunha Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -365,9 +365,11 @@ window_add_pane(struct window *w, u_int hlimit) void window_remove_pane(struct window *w, struct window_pane *wp) { - w->active = TAILQ_PREV(wp, window_panes, entry); - if (w->active == NULL) - w->active = TAILQ_NEXT(wp, entry); + if (wp == w->active) { + w->active = TAILQ_PREV(wp, window_panes, entry); + if (w->active == NULL) + w->active = TAILQ_NEXT(wp, entry); + } TAILQ_REMOVE(&w->panes, wp, entry); window_pane_destroy(wp);