Subject: bug#18739: 24.3; Request for a hook to be provided when scrolling will move the cursor

From: Stefan Monnier <[email-masked]>
Date: Thu, 16 Oct 2014 11:13:59 -0400

>> Does that include the case where window-start is changed
>> so as to follow point or is it only the cases where window-start was
>> changed explicitly by a scrolling command?
> Both.

So, could we say that this hook is supposed to be run if and only if
the window-start marker is changed?

E.g. it is not called if the only change is that text has been inserted
before window-start (hence the numeric value of window-start would be
changed, but the marker still points to the same place).

Of course, like most such hooks, it's OK if there are occasional false
positives (i.e. the hook is run even unnecessarily).

And as for "when" it is run: any time after the marker's modification
and before updating the glyph matrices?  Is it run before or after
computing the new mode-line (i.e. if the hook changes something that
affects the mode-line, will that be reflected right away, or will it be
delayed until the next redisplay)?

>> - how could a window-scroll-function distinguish the 3 cases:
>> "set-window-buffer", "used a scroll command", "moved point out of viewport".
> I have no idea (but this is not exactly a question about the doc
> string).

So, w.r.t the original question in the bug-report, we still don't have
an answer.  Do you happen to know where is the C code that changes point
(in response to scrolling) in the redisplay?

> Did the above clarifications help you?

Yes, thanks.  I still don't really understand how/why follow-mode and
em-smart.el work, tho.

        Stefan