diff --git a/ChangeLog b/ChangeLog index 80f4bbe3..281fb9d2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2010-01-04 Chris Allegretta + * winio.c: edit_update, edit_redraw - Fix search not scrolling to the middle of the screen + (reported by alpha@qzx.com) and places where we rely on maxrows but should not. + 2009-12-26 Jordi Mallach * doc/man/nano.1: Avoid a groff warning by prepending a zero-width space to a line starting with '. diff --git a/src/winio.c b/src/winio.c index 6b5e6e16..eb18ed8b 100644 --- a/src/winio.c +++ b/src/winio.c @@ -2935,7 +2935,7 @@ bool need_vertical_update(size_t pww_save) } /* When edittop changes, try and figure out how many lines - * we really have to work with (i.e. set maxrows) + * we really have to work with (i.e. set maxrows) */ void compute_maxrows(void) { @@ -3160,7 +3160,7 @@ void edit_redraw(filestruct *old_current, size_t pww_save) /* Put edittop in range of current, get the difference in lines * between the original edittop and the current edittop, and * then restore the original edittop. */ - edit_update(NONE); + edit_update(CENTER); nlines = openfile->edittop->lineno - old_edittop->lineno; @@ -3239,7 +3239,7 @@ void edit_refresh(void) /* Put the top line of the edit window in range of the current * line. */ - edit_update(NONE); + edit_update(CENTER); } foo = openfile->edittop; @@ -3279,13 +3279,13 @@ void edit_update(update_type location) * screen as before, or at the top or bottom of the screen if * edittop is beyond either. */ if (location == CENTER) - goal = maxrows / 2; + goal = editwinrows / 2; else { goal = openfile->current_y; /* Limit goal to (editwinrows - 1) lines maximum. */ - if (goal > maxrows - 1) - goal = maxrows - 1; + if (goal > editwinrows - 1) + goal = editwinrows - 1; } for (; goal > 0 && foo->prev != NULL; goal--) {