diff --git a/screen.c b/screen.c index 7caebabb..a6014074 100644 --- a/screen.c +++ b/screen.c @@ -1,4 +1,4 @@ -/* $Id: screen.c,v 1.29 2007-11-21 14:30:15 nicm Exp $ */ +/* $Id: screen.c,v 1.30 2007-11-21 14:55:31 nicm Exp $ */ /* * Copyright (c) 2007 Nicholas Marriott @@ -154,15 +154,16 @@ screen_resize(struct screen *s, u_int sx, u_int sy) if (s->cy != 0) { /* * The cursor is not at the start. Try to remove as - * many lines as possible from the top. + * many lines as possible from the top. (Up to the + * cursor line.) */ my = s->cy; if (my > ny) my = ny; screen_free_lines(s, s->hsize, my); - screen_move_lines(s, s->hsize, my, oy - my); - + screen_move_lines(s, s->hsize, s->hsize + my, oy - my); + s->cy -= my; oy -= my; }