Subject: bug#43835: 28.0.50; auto-hscroll-mode/current-line + show-paren-mode + gnus-summary-mode = bug

From: Eli Zaretskii <[email-masked]>
Date: Tue, 06 Oct 2020 22:10:26 +0300

> From: Stephen Berman <[email-masked]>
> Date: Tue, 06 Oct 2020 20:53:53 +0200
> 
> I have observed a quirk in auto hscrolling the current line under
> specific conditions.  I have only seen it in gnus-summary-mode, but
> there can reproduce it reliably with the following recipe:

Thanks, but having Gnus in the picture is too much.  Debugging
redisplay issues involved in these momentary movements is hard as it
is already.

You could perhaps help me come up with ideas if, in a build configured
with --enable-checking='yes,glyphs', you did the following:

  emacs -Q
  M-x blink-cursor-mode RET
  M-x global-eldoc-mode RET

Then perform your recipe up to and excluding step 8.

  M-x trace-redisplay RET

Wait till there are no more messages printed to stderr, then perform
step 8 and notice the messages it causes to be printed, after you type
C-e.

Then do the same experiment, but with some other buffer, where you say
that the problem doesn't happen, and tell what messages were printed
by trace-redisplay in that case after C-e.  If there's any difference
between these two scenarios visible in the trace, that could give some
ideas regarding the possible cause(s).

Thanks.

> I can reproduce this problem in Emacs 26, 27 and master, but I have only
> been able to reproduce it in Gnus summary buffers, and only on the last
> line of the summary and only when this line is longer than window-width
> (so that hscrolling can happen) and the line ends with a pair of paren
> characters (brackets and braces also show the effect) and
> show-paren-mode is enabled.  Sometimes I have seen the hscroll get
> restored after a several seconds, but other times this does not happen
> (though I haven't tried waiting for more than maybe 15-20 seconds).

Does the hscroll get restored if you type "M-x"?

P.S. Please remember performing all these tests with both
blink-cursor-mode and global-eldoc-mode disabled.  Those two cause
frequent redisplay cycles that can completely obscure the actual
problems.