]> git.wh0rd.org Git - nano.git/commitdiff
Not centering the current line when smooth scrolling is used.
authorBenno Schulenberg <bensberg@justemail.net>
Sun, 22 Mar 2015 13:23:42 +0000 (13:23 +0000)
committerBenno Schulenberg <bensberg@justemail.net>
Sun, 22 Mar 2015 13:23:42 +0000 (13:23 +0000)
This fixes Savannah bug #42654.

git-svn-id: svn://svn.savannah.gnu.org/nano/trunk/nano@5149 35c25a1d-7b9e-4130-9fde-d3aeb78583b8

ChangeLog
src/winio.c

index 7c86e3a1fc428fe16acfc51c7c598402a45e2e52..7fd4872ecc04be655b1aa14246d7591af08a1009 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,8 @@
        one byte but one character (possibly multibyte).  Fixes Savannah
        bug #42175, reported by myself, and the finding of ghosts seen in
        https://lists.gnu.org/archive/html/nano-devel/2015-03/msg00055.html.
+       * src/winio.c (edit_redraw): Do not center the current line when
+       smooth scrolling is used.  This fixes Savannah bug #42654.
 
 2015-03-21  Benno Schulenberg  <bensberg@justemail.net>
        * src/text.c (do_alt_speller): Remove some leftovers.
index c578640ce11d23404b4692d7eb5855569aa53d6f..3dbc1d05a6ece3f6251769abb7b152add305438e 100644 (file)
@@ -3160,10 +3160,11 @@ void edit_redraw(filestruct *old_current, size_t pww_save)
        }
 #endif /* !NANO_TINY */
 
-       /* 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(CENTER);
+       /* Make sure the current line is on the screen. */
+       if (ISSET(SMOOTH_SCROLL))
+           edit_update(NONE);
+       else
+           edit_update(CENTER);
 
        /* Update old_current if we're not on the same page as
         * before. */
@@ -3229,8 +3230,7 @@ void edit_refresh(void)
                (long)openfile->current->lineno, (long)openfile->edittop->lineno, maxrows);
 #endif
 
-       /* Put the top line of the edit window in range of the current
-        * line. */
+       /* Make sure the current line is on the screen. */
        edit_update(CENTER);
     }