From d948edc4f31f2c7ec91ea94d8f4c1ad3ca059eb7 Mon Sep 17 00:00:00 2001 From: Chris Allegretta Date: Tue, 2 Oct 2001 00:38:56 +0000 Subject: [PATCH] DLR's latest smooth scroll fix, case where there's not a full half page up from the cursor to fileage screws up the cursor position git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@806 35c25a1d-7b9e-4130-9fde-d3aeb78583b8 --- ChangeLog | 2 +- move.c | 10 +++++++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/ChangeLog b/ChangeLog index ede5427b..2c86c0b5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -17,7 +17,7 @@ CVS code - - Mac file writing supported too. Flag -M, --mac. Toggle Meta-O (MacOS? OS-X? =-) - New smooth scroll code by Ken Tyler. New flag -S, --smooth, - changes to page_up() and page_down(). Fixes to paging by + changes to page_up() and page_down(). Many fixes to paging by David Lawrence Ramsey. - Bracket (brace, parens, etc) matching code by Ken Tyler. New functions do_find_bracket(), changes to findnextstr(), diff --git a/move.c b/move.c index 17d9684f..75c40995 100644 --- a/move.c +++ b/move.c @@ -143,7 +143,15 @@ void page_up(void) if (edittop != fileage) { if (!ISSET(SMOOTHSCROLL)) { edit_update(edittop, CENTER); - center_cursor(); + /* Now that we've updated the edit window, edittop might be + at the top of the file; if so, just move the cursor up one + line and don't center it. */ + if (edittop != fileage) + center_cursor(); + else { + current = current->prev; + reset_cursor(); + } } else { edit_update(edittop->prev, NONE); } -- 2.39.5