Subject: Re: bug#17678: 24.4.50; Feature Request -- calculate new `window-start` & `window-end` before visual redisplay

From: Eli Zaretskii <[email-masked]>
Date: Fri, 13 Jun 2014 16:27:54 +0300

> From: Stefan Monnier <[email-masked]>
> Cc: [email-masked],  [email-masked]
> Date: Fri, 13 Jun 2014 08:34:59 -0400
> 
> >> I know of code that does that from outside of redisplay, but within
> >> redisplay I only know of the "move point back into view".
> > Why does it matter if the trigger comes from outside redisplay or as
> > part of redisplay?
> 
> If it's done outside of redisplay, then pre-redisplay-function already
> gets the right window-start and the problem is already solved.

Not necessarily: there are the w->optional_new_start and
w->force_start flags, which determine what redisplay does with
window-start in these cases.

Also, the window-start could be set to a value that leaves point out
of the displayed area, in which case it won't be in effect.

> If OTOH redisplay decides to scroll, it won't re-execute
> pre-redisplay-function, so Elisp doesn't get a chance to react to this
> new window-start.

??? Then what are those calls to run_window_scroll_functions that
redisplay issues?