Subject: Re: bug#19012: 25.0.50; `help-window-select'

From: martin rudalics <[email-masked]>
Date: Tue, 11 Nov 2014 19:31:55 +0100

This one is at least dubious

 >      (setq return-window  (select-window
                              ^^^^^^^^^^^^^
 >                            (funcall special-display-function buf args)))

According to its doc-string `display-buffer' should

   Display BUFFER-OR-NAME in some window, without selecting it.

As a rule, `display-buffer' should not select the window used.
Otherwise, `with-help-window' cannot determine the correct window to
select when quitting help.

However, with the current release and trunk, emacs -Q and

(defun 1on1-display-*Help*-frame (buf &optional args)
   "Display *Help* buffer in its own frame.
`special-display-function' is used to do the actual displaying.
BUF and ARGS are the arguments to `special-display-function'."
   (let ((old-ptr-shape  (and (boundp 'x-pointer-shape) x-pointer-shape))
         return-window)
     (when (boundp 'x-pointer-xterm)
       (setq x-pointer-shape  x-pointer-xterm))
     (setq return-window  (select-window
                           (funcall special-display-function buf args)))
     (raise-frame)
     (setq x-pointer-shape  old-ptr-shape)
     return-window))

(add-to-list
  'special-display-buffer-names
  (list "*Help*" '1on1-display-*Help*-frame
        (list '(height . 40))))

the *Help* window is always selected here after C-h f, C-h v, ...

martin