Mercurial > emacs
changeset 8993:c6572fa27df3
(special-display-popup-frame): Rename new arg to ARGS.
Allow (FUNCTION OTHER-ARGS...) as the value of ARGS.
author | Richard M. Stallman <rms@gnu.org> |
---|---|
date | Thu, 22 Sep 1994 05:47:28 +0000 |
parents | 245187067d35 |
children | 818bddaf3e03 |
files | lisp/frame.el |
diffstat | 1 files changed, 19 insertions(+), 13 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/frame.el Thu Sep 22 05:07:30 1994 +0000 +++ b/lisp/frame.el Thu Sep 22 05:47:28 1994 +0000 @@ -84,19 +84,25 @@ ;; Display BUFFER in its own frame, reusing an existing window if any. ;; Return the window chosen. ;; Currently we do not insist on selecting the window within its frame. -(defun special-display-popup-frame (buffer &optional params) - (let ((window (get-buffer-window buffer t))) - (if window - ;; If we have a window already, make it visible. - (let ((frame (window-frame window))) - (make-frame-visible frame) - (raise-frame frame) - window) - ;; If no window yet, make one in a new frame. - (let ((frame (make-frame (append params special-display-frame-alist)))) - (set-window-buffer (frame-selected-window frame) buffer) - (set-window-dedicated-p (frame-selected-window frame) t) - (frame-selected-window frame))))) +;; If ARGS is an alist, use it as a list of frame parameter specs. +;; If ARGS is a list whose car is a symbol. +;; use (car ARGS) as a function to do the work. +;; Pass it BUFFER as first arg, and (cdr ARGS) gives the rest of the args. +(defun special-display-popup-frame (buffer &optional args) + (if (and args (symbolp (car args))) + (apply (car args) buffer (cdr args)) + (let ((window (get-buffer-window buffer t))) + (if window + ;; If we have a window already, make it visible. + (let ((frame (window-frame window))) + (make-frame-visible frame) + (raise-frame frame) + window) + ;; If no window yet, make one in a new frame. + (let ((frame (make-frame (append args special-display-frame-alist)))) + (set-window-buffer (frame-selected-window frame) buffer) + (set-window-dedicated-p (frame-selected-window frame) t) + (frame-selected-window frame)))))) (setq special-display-function 'special-display-popup-frame)