GNU bug report logs -
#18739
24.3; Request for a hook to be provided when scrolling will move the cursor
Previous Next
Reported by: josh+gnu <at> nispio.net
Date: Wed, 15 Oct 2014 19:09:02 UTC
Severity: wishlist
Found in version 24.3
Done: Lars Ingebrigtsen <larsi <at> gnus.org>
Bug is archived. No further changes may be made.
Full log
Message #74 received at 18739 <at> debbugs.gnu.org (full text, mbox):
> From: Stefan Monnier <monnier <at> iro.umontreal.ca>
> Cc: josh+gnu <at> nispio.net, 18739 <at> debbugs.gnu.org
> 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?
I don't think so, because set-window-buffer and split-window-internal
run the hook unconditionally, i.e. they don't check whether the
window-start 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).
As long as the old window-start is valid and point is in view, I don't
think the hook will be called, no.
But note that inserting text before window-start could cause
scrolling, if window-start was originally in a continued line, or if
text was added at the beginning of the line that was the window-start.
> And as for "when" it is run: any time after the marker's modification
> and before updating the glyph matrices?
Yes.
> Is it run before or after computing the new mode-line
Before.
> >> - 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.
I actually don't really understand what was the question anymore, see
the other thread of discussion.
> Do you happen to know where is the C code that changes point
> (in response to scrolling) in the redisplay?
The part that begins under the force_start label in redisplay_window,
and is conditioned by the window's force_start flag.
> > Did the above clarifications help you?
>
> Yes, thanks. I still don't really understand how/why follow-mode and
> em-smart.el work, tho.
Who does? ;-)
This bug report was last modified 3 years and 30 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.