aboutsummaryrefslogtreecommitdiff
path: root/session.c
diff options
context:
space:
mode:
Diffstat (limited to 'session.c')
-rw-r--r--session.c16
1 files changed, 6 insertions, 10 deletions
diff --git a/session.c b/session.c
index dbc5263f..2596971b 100644
--- a/session.c
+++ b/session.c
@@ -1,4 +1,4 @@
-/* $Id: session.c,v 1.14 2007-09-21 20:02:23 nicm Exp $ */
+/* $Id: session.c,v 1.15 2007-09-21 20:45:05 nicm Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@@ -129,20 +129,16 @@ session_attach(struct session *s, struct window *w)
int
session_detach(struct session *s, struct window *w)
{
+ if (s->window == w && session_last(s) != 0 && session_previous(s) != 0)
+ session_next(s);
+ if (s->last == w)
+ s->last = NULL;
+
window_remove(&s->windows, w);
if (ARRAY_EMPTY(&s->windows)) {
session_destroy(s);
return (1);
}
-
- if (s->last == w)
- s->last = NULL;
- if (s->window == w) {
- /* Reset s->window to stop it ending up in s->last. */
- s->window = NULL;
- if (session_last(s) != 0 && session_previous(s) != 0)
- session_next(s);
- }
return (0);
}