Function: display-buffer-use-some-frame
display-buffer-use-some-frame is a byte-compiled function defined in
window.el.gz.
Signature
(display-buffer-use-some-frame BUFFER ALIST)
Documentation
Display BUFFER in an existing frame that meets a predicate.
The default predicate is to use any frame other than the selected frame. If successful, return the window used; otherwise return nil.
ALIST is an association list of action symbols and values. See Info node (elisp) Buffer Display Action Alists for details of such alists.
If ALIST has a non-nil inhibit-switch-frame entry, avoid
raising the frame. If it has a non-nil frame-predicate entry,
its value is a function taking one argument (a frame), returning
non-nil if the frame is a candidate; this function replaces the
default predicate. If ALIST has a non-nil inhibit-same-window
entry, avoid using the currently selected window (only useful
with a frame-predicate that allows using the selected frame).
This is an action function for buffer display, see Info
node (elisp) Buffer Display Action Functions. It should be
called only by display-buffer or a function directly or
indirectly called by the latter.
Probably introduced at or before Emacs version 25.1.
Source Code
;; Defined in /usr/src/emacs/lisp/window.el.gz
;;; `display-buffer' action functions:
(defun display-buffer-use-some-frame (buffer alist)
"Display BUFFER in an existing frame that meets a predicate.
The default predicate is to use any frame other than the selected
frame. If successful, return the window used; otherwise return
nil.
ALIST is an association list of action symbols and values. See
Info node `(elisp) Buffer Display Action Alists' for details of
such alists.
If ALIST has a non-nil `inhibit-switch-frame' entry, avoid
raising the frame. If it has a non-nil `frame-predicate' entry,
its value is a function taking one argument (a frame), returning
non-nil if the frame is a candidate; this function replaces the
default predicate. If ALIST has a non-nil `inhibit-same-window'
entry, avoid using the currently selected window (only useful
with a frame-predicate that allows using the selected frame).
This is an action function for buffer display, see Info
node `(elisp) Buffer Display Action Functions'. It should be
called only by `display-buffer' or a function directly or
indirectly called by the latter."
(let* ((predicate
(or (cdr (assq 'frame-predicate alist))
(lambda (frame)
(and (not (eq frame (selected-frame)))
(get-lru-window frame)))))
(frame (car (filtered-frame-list predicate)))
(window
(and frame
(get-lru-window
frame nil (cdr (assq 'inhibit-same-window alist))))))
(when window
(prog1
(window--display-buffer buffer window 'reuse alist)
(unless (cdr (assq 'inhibit-switch-frame alist))
(window--maybe-raise-frame frame))))))