Subject: Re: bug#29002: it.first_visible_x is erroneously 0 while horizontal scrolling.

From: Keith David Bershatsky <[email-masked]>
Date: Sun, 05 Nov 2017 08:59:47 -0800

Step # 1:  Download a fresh copy of the emacs-26 branch.

Step # 2:  Inside the function `set_window_hscroll` within window.c, add a message just before the function returns.

AUTO_STRING (my_string_one, "window.c:  set_window_hscroll");
CALLN (Fmessage, my_string_one);

Step # 3:  Build the new Emacs, and launch without any user configuration.

Step # 4:  From the Welcome screen, type:  C-r

Step # 5:  Slowly type the word Emacs and watch the echo area as you type each letter.

Inasmuch as the function `set_window_hscroll` is being called each time we type a letter, the proposed fix to #29002 causes a thorough redisplay after every keystroke while using isearch.  This is probably not limited to isearch -- it was just the first occasion where the side affect was immediately noticeable.

Keith

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

DATE:  [11-05-2017 02:44:39] <05 Nov 2017 12:44:39 +0200>
FROM:  Eli Zaretskii <[email-masked]>
> 
> On November 5, 2017 11:15:41 AM GMT+02:00, Keith David Bershatsky <[email-masked]> wrote:
> > The new fix relating to #29002 has an unintended side-effect of
> > causing a full redisplay too often, e.g., when using isearch.
> > 
> > I am uncertain why the current Emacs design sets
> > w->suspend_auto_hscroll to *true* every command loop, but that is what
> > causes the new condition to force a thorough redisplay much more often
> > than is actually needed.
> > 
> > 
> > * * *
> 
> Please describe a recipe where you see suspend_auto_hscroll being
> set true every command loop.