Subject: Re: bug#32839: 27.0.50; recenter doesn't redisplay

From: Juri Linkov <[email-masked]>
Date: Thu, 27 Sep 2018 02:55:38 +0300

> Also, you are talking about 2 different functions -- 'recenter' and
> 'recenter-top-bottom' -- and that adds confusion to the discussion, so
> maybe I misunderstood something you wanted to say.

I wanted to say that I see two problems here:

1. recenter doesn't redraw the frame when it is called with
   a non-nil REDISPLAY argument.

   In `recenter-top-bottom', when `recenter-last-op' is `top',
   this gets called:

     (recenter this-scroll-margin t)

   When `this-scroll-margin' is 0, the actual call is:

     (recenter 0 t)

   Despite its REDISPLAY argument set to t, the frame is not redisplayed.

2. The second problem is that after the call to (recenter -1 t),
   window-scroll-functions is called only when recenter moves the current
   buffer line to the second-last window line (when the last window line is
   partially visible).  But when the last window line is fully visible,
   window-scroll-functions is not called after (recenter -1 t).