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

From: Stephen Berman <[email-masked]>
Date: Tue, 06 Oct 2020 22:05:42 +0200

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

>> 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.

I believe you, and I wish I could remove Gnus from the recipe (I've been
seeing this problem for at least three years, but only today did I
recognize that show-paren-mode was involved and so could reliably
reproduce it).

> 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.

Thanks for the suggestions, I'll try them as soon as I can and report back.

>> 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"?

As soon as I type `M-x' I see the line scroll left and the cursor at the
end, and it remains like that, but if I then type `C-g', the line
scrolls back to the right and point is again not visible, as in step 8.

> 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.

Ok.

Steve Berman