Subject: Re: bug#16475: enhancement request: remove vertical scroll bar automatically when not needed

From: Eli Zaretskii <[email-masked]>
Date: Thu, 26 Oct 2017 18:59:02 +0300

> Date: Thu, 26 Oct 2017 09:56:59 +0200
> From: martin rudalics <[email-masked]>
> CC: [email-masked], [email-masked]
> 
>  > More importantly, removing the scroll bar resizes the external
>  > dimensions of the frame, to keep the windows' dimensions unchanged
>  > (otherwise, we couldn't remove the scroll bars at the very end of the
>  > window's redisplay).  You can see this in action if you toggle
>  > scroll-bar-mode on and off.  So when the window shows _almost_ all the
>  > text of the buffer, the frame would annoyingly oscillate in its
>  > horizontal dimension.  This could be caused, for example, by echo-area
>  > messages that resize the mini-window from time to time, or by the user
>  > adjusting the window size.
> 
> Obviously, an equivalent of ‘set-window-scroll-bars’ would have to be
> used here.

I agree, but then the right place to call this is not from redisplay,
but from keyboard.c, before it calls read_char (which calls
redisplay).  set-window-scroll-bars triggers a redisplay cycle, so
calling it from (the end of) redisplay is not very wise, IMO.