Subject: Re: bug#36421: Having some text with face height > 1.0 causes scroll-step to be ignored

From: Pip Cet <[email-masked]>
Date: Fri, 28 Jun 2019 21:11:15 +0000

On Fri, Jun 28, 2019 at 4:27 PM Andrea Cardaci <[email-masked]> wrote:
> Basically as the title says, here's how to reproduce this:
>
> 1. start Emacs with -Q;
>
> 2. evaluate this sexp:
>
>    (progn
>      (custom-set-variables
>       '(scroll-step 1)
>       '(scroll-margin 0))

I think you want scroll-conservatively. Here's the documentation:

  DEFVAR_INT ("scroll-step", emacs_scroll_step,
    doc: /* The number of lines to try scrolling a window by when
point moves out.
If that fails to bring point back on frame, point is centered instead.
If this is zero, point is always centered after it moves off frame.
If you want scrolling to always be a line at a time, you should set
`scroll-conservatively' to a large value rather than set this to 1.  */);

  DEFVAR_INT ("scroll-conservatively", scroll_conservatively,
    doc: /* Scroll up to this many lines, to bring point back on screen.
If point moves off-screen, redisplay will scroll by up to
`scroll-conservatively' lines in order to bring point just barely
onto the screen again.  If that cannot be done, then redisplay
recenters point as usual.

If the value is greater than 100, redisplay will never recenter point,
but will always scroll just enough text to bring point into view, even
if you move far away.

A value of zero means always recenter point if it moves off screen.  */);