Sync OpenBSD patchset 591:

Fix a couple of problems with grouped sessions reported by danh: redraw
properly and choose the correct last window after a window is killed.
This commit is contained in:
Tiago Cunha 2009-12-26 23:45:21 +00:00
parent e447088a8a
commit f81b3ddf94
2 changed files with 8 additions and 10 deletions

View File

@ -1,4 +1,4 @@
/* $Id: server-fn.c,v 1.99 2009-12-04 22:14:47 tcunha Exp $ */
/* $Id: server-fn.c,v 1.100 2009-12-26 23:45:21 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -250,10 +250,8 @@ server_kill_window(struct window *w)
if (session_detach(s, wl))
server_destroy_session_group(s);
else {
server_redraw_session(s);
server_status_session_group(s);
}
else
server_redraw_session_group(s);
}
}

View File

@ -1,4 +1,4 @@
/* $Id: session.c,v 1.73 2009-12-04 22:14:47 tcunha Exp $ */
/* $Id: session.c,v 1.74 2009-12-26 23:45:21 tcunha Exp $ */
/*
* Copyright (c) 2007 Nicholas Marriott <nicm@users.sourceforge.net>
@ -548,10 +548,10 @@ session_group_synchronize1(struct session *target, struct session *s)
return;
/* If the current window has vanished, move to the next now. */
if (s->curw != NULL) {
while (winlink_find_by_index(ww, s->curw->idx) == NULL)
session_next(s, 0);
}
if (s->curw != NULL &&
winlink_find_by_index(ww, s->curw->idx) == NULL &&
session_last(s) != 0 && session_previous(s, 0) != 0)
session_next(s, 0);
/* Save the old pointer and reset it. */
memcpy(&old_windows, &s->windows, sizeof old_windows);