Subject: Re: bug#63455: 30.0.50; display-buffer-in-direction is always resizing

From: martin rudalics <[email-masked]>
Date: Sat, 20 May 2023 10:27:41 +0200

>> Almost (I had to make 'ediff-setup-windows-plain-compare' do what your
 >> patch does).  But as I mentioned earlier, you might want to replace
 >> 'fit-window-to-buffer' with something conditioned on whether the user
 >> has customized 'temp-buffer-resize-mode' - some users simply might not
 >> want their windows to auto-resize.
 >
 > I still don't understand the need to add a new function.

The new function would serve, for example, in
'ediff-setup-windows-plain-compare'

     (select-window (display-buffer-in-direction
                     control-buffer
                     '((direction . bottom)
                       (window-height . fit-window-to-buffer))))

to make sure the window is fit iff 'temp-buffer-resize-mode' is enabled.

 > When users don't want their windows to auto-resize,
 > then they can simply do:
 >
 > (add-to-list 'display-buffer-alist
 >               '("*Help*" nil
 >                 ;; Inhibit resizing Help buffers
 >                 (window-height . nil)))

A user who has not set 'temp-buffer-resize-mode' does not want
auto-resizing to happen and probably does not want to deal with
'display-buffer-alist' either.

In either case, the new function is not relevant to your example.  That
setup doesn't work with 'temp-buffer-resize-mode' turned on because
'help--window-setup' ignores 'display-buffer-alist' when it does

         (when (and window temp-buffer-resize-mode)
           (let (resize-temp-buffer-window-inhibit)
             (resize-temp-buffer-window window)))))))

All this has become very contrived because of 'help-make-xrefs'.  I
suppose we have to (1) make 'temp-buffer-windo-show' return the function
'display-buffer' would have used to resize the window if NO-RESIZE had
allowed it to do so and (2) have 'help--window-setup' apply the return
value, if non-nil, to resize the window after calling 'help-make-xrefs'.
If worse comes to worst, 'help--window-setup' may have to investigate
the current value of 'resize-temp-buffer-window-inhibit' too ...

martin