> Suppose, without any display-buffer-alist customization, I have just > > (setq display-buffer-base-action > (quote ( > (display-buffer-reuse-window display-buffer-pop-up-frame) > (reusable-frames . x) > ))) > > in my init file, where x can be any of 0,1, nil, visible, all these > choices don’t matter for this: If I open Emacs, the initial frame > shows up, and any file loaded via recent-files, or by dragging on > the Emacs icon, or by clicking on the file icon, shows up in the > initial frame, contrary to what is advertised in the > manual.
What _is_ advertised in the manual?
To quote from Section 28.13.5:
Let's consider a user who, as a rule, prefers to display buffers on another frame. Such a user might provide the following customization: (customize-set-variable
'display-buffer-base-action
'((display-buffer-reuse-window display-buffer-pop-up-frame)
(reusable-frames . 0)))
This setting will cause display-buffer to first try to find a window showing the buffer on a visible or iconified frame and, if no such frame exists, pop up a new frame.
The words “another” and “new” suggest a behavior different from what I described above.
> However, once a file is loaded, then re-selecting it via > Menu->Buffers, pops it up in a new frame (with properties as > specified in defaults-frame-alist). So, what is the relation between > "display-buffer-base-action” and “default-frame-alist”?
If a new frame is created by 'display-buffer', its parameters are determined by
(1) any 'pop-up-frame-parameters' entry found,
(2) the value of 'pop-up-frame-alist' (if the function specified by 'pop-up-frame-function' processes it - the default does) and
(3) the value of 'default-frame-alist'.
So if you use the 'display-buffer-base-action' specification from the top, only 'default-frame-alist' will be used because you neither customized any 'pop-up-frame-parameters' nor 'pop-up-frame-alist' (the latter should not be used anyway). All based on the assumption that you have customized 'switch-to-buffer-obey-display-actions' so that Menu->Buffers indeed tries to pop to the buffer.
martin
|