Subject: Re: bug#29325: 26.0.90: Info scrolling stuck

From: Eli Zaretskii <[email-masked]>
Date: Sun, 19 Nov 2017 19:12:00 +0200

> Date: Sun, 19 Nov 2017 17:49:50 +0100
> From: [email-masked] (Charles A. Roelli)
> CC: [email-masked]
> 
> > Still not reproducible.
> > 
> > Does the same problem happen if you scroll with "M-1 M-v" instead of
> > the mouse wheel?
> 
> No: it works fine in that case.

If this is only about scrolling with the mouse wheel, then perhaps the
factor which differs between our systems is the amount of scrolling
per wheel notch.  How many lines does a single notch scroll in your
case?  And does the problem happen if you turn the wheel slowly?

> > 	  (cond ((eq button mouse-wheel-down-event)
> >                  (condition-case nil (funcall mwheel-scroll-down-function amt)
> >                    ;; Make sure we do indeed scroll to the beginning of
> >                    ;; the buffer.
> >                    (beginning-of-buffer
> >                     (unwind-protect
> >                         (funcall mwheel-scroll-down-function)
> >                       ;; If the first scroll succeeded, then some scrolling
> >                       ;; is possible: keep scrolling til the beginning but
> >                       ;; do not signal an error.  For some reason, we have
> >                       ;; to do it even if the first scroll signaled an
> >                       ;; error, because otherwise the window is recentered
> >                       ;; for a reason that escapes me.  This problem seems
> >                       ;; to only affect scroll-down.  --Stef
> >                       (set-window-start (selected-window) (point-min))))))
> 
> That is, when attempting to scroll down (as in, moving towards
> beginning of buffer) under some mysterious circumstances, the window
> gets recentered around point instead of being scrolled.  However, if
> point is moved to the first line of the window, say, then the
> scrolling does work as expected (as I've found out by experimenting
> more with my initial recipe).

I have serious difficulties dealing with unexplained and undescribed
problems that happen "under mysterious circumstances".

If you build with --enable-checking='yes,glyphs', and then turn on
redisplay tracing with "M-x trace-redisplay" before scrolling with the
wheel, what do you see?  And how does that trace differ from when you
scroll with "M-1 M-v"?

(I find it useful to disable blink-cursor-mode and global-eldoc-mode
before such experiments, because they tend to trigger extra redisplay
cycles that conceal the interesting parts.)