mirror of
git://git.sv.gnu.org/emacs.git
synced 2026-02-17 18:37:33 +00:00
Add display-buffer action display-buffer-use-some-frame
* lisp/window.el (display-buffer-use-some-frame): new
This commit is contained in:
parent
11d40d38c8
commit
72fea2fac5
1 changed files with 33 additions and 0 deletions
|
|
@ -6488,6 +6488,39 @@ its documentation for additional customization information."
|
|||
|
||||
;;; `display-buffer' action functions:
|
||||
|
||||
(defun display-buffer-use-some-frame (buffer alist)
|
||||
"Display BUFFER in an existing frame other than the current frame.
|
||||
If successful, return the window used; otherwise return nil.
|
||||
|
||||
If ALIST has a non-nil `inhibit-switch-frame' entry, avoid
|
||||
raising the frame.
|
||||
|
||||
If ALIST has a non-nil `pop-up-frame-parameters' entry, the
|
||||
corresponding value is an alist of frame parameters to give the
|
||||
new frame.
|
||||
|
||||
If ALIST has a non-nil `frame-predicate' entry, the corresponding
|
||||
value is a function taking one argument (a frame), returning
|
||||
non-nil if the frame is a candidate."
|
||||
(let* ((predicate (or (cdr (assoc 'frame-predicate alist))
|
||||
(lambda (frame)
|
||||
(and
|
||||
(not (eq frame (selected-frame)))
|
||||
(not (window-dedicated-p
|
||||
(or
|
||||
(get-lru-window frame)
|
||||
(frame-first-window frame)))))
|
||||
)))
|
||||
(frame (car (filtered-frame-list predicate)))
|
||||
(window (and frame (get-lru-window frame))))
|
||||
(when window
|
||||
(prog1
|
||||
(window--display-buffer
|
||||
buffer window 'frame alist display-buffer-mark-dedicated)
|
||||
(unless (cdr (assq 'inhibit-switch-frame alist))
|
||||
(window--maybe-raise-frame frame))))
|
||||
))
|
||||
|
||||
(defun display-buffer-same-window (buffer alist)
|
||||
"Display BUFFER in the selected window.
|
||||
This fails if ALIST has a non-nil `inhibit-same-window' entry, or
|
||||
|
|
|
|||
Loading…
Reference in a new issue