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

From: Keith David Bershatsky <[email-masked]>
Date: Sun, 05 Nov 2017 01:15:41 -0800

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.

	  /* If the position of this window's point has explicitly
	     changed, no more suspend auto hscrolling.  */
	  if (w->suspend_auto_hscroll
	      && NILP (Fequal (Fwindow_point (window),
			       Fwindow_old_point (window))))
	    {

AUTO_STRING (my_string_one, "Hello world!");
CALLN (Fmessage, my_string_one);

	      w->suspend_auto_hscroll = false;
	      /* Force thorough redisplay of this window, to show the
		 effect of disabling hscroll suspension immediately.  */
	      SET_FRAME_GARBAGED (XFRAME (w->frame));
	    }