Subject: Re: bug#8476: 23.2; One-line scrolling & jit-lock (or font-lock)

From: Eli Zaretskii <[email-masked]>
Date: Mon, 11 Apr 2011 17:29:25 +0300

> From: Eli Barzilay <[email-masked]>
> Date: Mon, 11 Apr 2011 09:59:43 -0400
> Cc: 
> 
> Like many others, I've been trying to get Emacs to scroll the display
> by one line when the cursor goes out of the displayed area.  In my
> settings I have
> 
>   scroll-step 1
>   scroll-conservatively 10000
>   scroll-margin 0
> 
> I know that in theory only the second is needed, but I still got the
> recentering behavior.

This has been resolved, I hope for good, in the current development
sources.  See bug #6671.

The problem was that Emacs would always recenter whenever it exhausted
all its wits to get to the new position of point from the old one by
line-wise movement.  However, such recentering is not necessary even
in that case, because even if we jump to an entirely new location in
the buffer, we can still position point at the last or first screen
line.  Code to do that was added a couple of weeks ago (on Mar 31, to
be exact).

If you can upgrade to the development version or to some recent enough
snapshot, you should see that problem gone.

> I just tried disabling `jit-lock-mode', and to my surprise that made
> the problem go away, but it also disabled highlighting new text.

JIT Lock is one of the reasons that trigger recentering (because JIT
Lock slows down scrolling and makes more probable the situation where
redisplay cannot keep up and eventually becomes confused and
recenters), but it's not the only one.  Displaying complex scripts or
fonts will also have that effect (try "C-h H", for example), as will
simply leaning on the down arrow on a keyboard with high auto-repeat
rate.  The root cause was elsewhere, as explained above.

I'm closing this bug report.  If you do upgrade to Emacs 24 and see
recentering, feel free to re-open it.

In any case, thank you for your report.