Subject: bug#36193: 26.2; 'set-window-scroll-bars' setting doesn't take effect in emacsclient session

From: Andrea Greselin <[email-masked]>
Date: Tue, 18 Jun 2019 14:46:15 +0200

> (1) Is this behavior special for the minibuffer window?  That is, if
> in 'after-make-frame-functions' you removed the scroll bar from any
> other window, does it stay removed when you switch to that window
> repeatedly?
Yes. If in 'hide-minibuffer-scrollbar' I replace '(minibuffer-window)' with
'nil', the scratch buffer has no scroll bars and they don't reappear even
if the buffer become longer than the window height. They are only
re-enabled if I open another buffer in that window, and then they persist.

> (2) Does showing a message in the echo area suffice to make the scroll
> bar reappear?  With other words, what does "use" the minibuffer stand
> for?
No, messages are shown at startup without the scroll bars being shown. if I
do M-x or M-: or anything that moves the point to the minibuffer, then they
are re-enabled.

> (3) I suppose "it isn't removed afterwards" means you can still remove
> the scroll bar explicitly via 'set-window-scroll-bars' afterwards.
> Right?  And if you do that, does it come back after yet another "use"
> of the minibuffer?
Yes I can still remove them by evaluating '(set-window-scroll-bars
(minibuffer-window) 0 nil)'. Then they are only shown while the minibuffer
is active (which is the same behaviour I get right from the start in normal
(non-client) Emacs sessions).

> (4) Can you influence the behavior by customizing the variable
> `resize-mini-windows'?
Nope, it doesn't appear to have any effect, neither when set in the init
file nor in a running emacsclient session.

Best, andrea

On Sun, 16 Jun 2019 at 10:17, martin rudalics <[email-masked]> wrote:

>  > Trying to follow your suggestion I've written
>  >
>  >    (defun hide-minibuffer-scrollbar (frame)
>  >      (with-selected-frame frame
>  >        (set-window-scroll-bars (minibuffer-window) 0 nil)))
>  >    (if (daemonp)
>  >        (add-hook 'after-make-frame-functions
> #'hide-minibuffer-scrollbar) ; Only for client sessions
>  >      (set-window-scroll-bars (minibuffer-window) 0 nil))
>  >
>  > Now client sessions start without the minibuffer scrollbar, but as soon
> as
>  > I use the minibuffer it comes back and it isn't removed afterwards.
>
> Scrollbar management in the minibuffer window might be unpredictable.
> Also, GTK builds usually hide the scroll bar in a one line minibuffer
> window automatically, so even the 'min-slider-length' might come into
> play here.
>
> To make sure we don't miss anything before proceeding further:
>
> (1) Is this behavior special for the minibuffer window?  That is, if
> in 'after-make-frame-functions' you removed the scroll bar from any
> other window, does it stay removed when you switch to that window
> repeatedly?
>
> (2) Does showing a message in the echo area suffice to make the scroll
> bar reappear?  With other words, what does "use" the minibuffer stand
> for?
>
> (3) I suppose "it isn't removed afterwards" means you can still remove
> the scroll bar explicitly via 'set-window-scroll-bars' afterwards.
> Right?  And if you do that, does it come back after yet another "use"
> of the minibuffer?
>
> (4) Can you influence the behavior by customizing the variable
> `resize-mini-windows'?
>
> Thanks, martin
>