Subject: Re: bug#17671: 24.3.91; RET on a link in *Help* buffer resizes *Help*

From: martin rudalics <[email-masked]>
Date: Tue, 03 Jun 2014 09:21:56 +0200

>    C-h f line-move-visual RET
 >    C-x o
 >    move to the link under "simple.el" and type RET
 >    drag the mode line so that the lower window showing *Help* becomes
 >     smaller

`temp-buffer-resize-mode' would do that automatically.

 >    move cursor to the first call to vertical-motion
 >    C-h f RET
 >    C-x o
 >    move to the link under "C source code" and type RET
 >    the window showing *Help* is resized back to half the frame

It's due to this code in `display-buffer-use-some-window':

       ;; If the window was used by `display-buffer' before, try to
       ;; resize it to its old height but don't signal an error.
       (when (and (listp quad)
		 (integerp (nth 3 quad))
		 (/= (nth 3 quad) (window-total-height window)))
	(condition-case nil
	    (window-resize window (- (nth 3 quad) (window-total-height window)))
	  (error nil)))

 > This is annoying.  I like my *Help* windows to be small, but many
 > times (but not always) they are resized when I need to request
 > documentation of something else.

In the case at hand the *Help* window gets resized _implicitly_ because
the _other_ window is resized so the behavior is not tied to using help.

 > Why cannot Emacs keep the size of that window?

I can't remember.  Maybe to assure that the window used for displaying
`vertical-motion' is reasonably large (after all you could have dragged
the mode line to make the window showing *Help* larger).  Maybe simply
to assure that when the same or a similar buffer is displayed in that
window again, one can continue to work with its previous size (I vaguely
remember that you requested something similar once wrt the position of
`point' in such case).  Maybe it was also completlely unmotivated.

We can either remove that part or make it customizable.  Since I never
use `display-buffer-use-some-window' I can't judge how offending the
behavior is.

martin