Mercurial > emacs
diff lisp/window.el @ 106132:57f23ca20a76
* window.el (display-buffer-mark-dedicated): New var.
(display-buffer): Obey it.
* minibuffer.el (minibuffer-completion-help): Use it.
author | Stefan Monnier <monnier@iro.umontreal.ca> |
---|---|
date | Thu, 19 Nov 2009 22:05:40 +0000 |
parents | 009383a57ce8 |
children | eaae8a5d935f |
line wrap: on
line diff
--- a/lisp/window.el Thu Nov 19 22:03:36 2009 +0000 +++ b/lisp/window.el Thu Nov 19 22:05:40 2009 +0000 @@ -1042,6 +1042,11 @@ (set-window-buffer window buffer) (window--display-buffer-1 window))) +(defvar display-buffer-mark-dedicated nil + "If non-nil, `display-buffer' marks the windows it creates as dedicated. +The actual non-nil value of this variable will be copied to the +`window-dedicated-p' flag.") + (defun display-buffer (buffer-or-name &optional not-this-window frame) "Make buffer BUFFER-OR-NAME appear in some window but don't select it. BUFFER-OR-NAME must be a buffer or the name of an existing @@ -1133,8 +1138,10 @@ buffer (if (listp pars) pars)))))) ((or use-pop-up-frames (not frame-to-use)) ;; We want or need a new frame. - (window--display-buffer-2 - buffer (frame-selected-window (funcall pop-up-frame-function)))) + (let ((win (frame-selected-window (funcall pop-up-frame-function)))) + (when display-buffer-mark-dedicated + (set-window-dedicated-p win display-buffer-mark-dedicated)) + (window--display-buffer-2 buffer win))) ((and pop-up-windows ;; Make a new window. (or (not (frame-parameter frame-to-use 'unsplittable)) @@ -1149,8 +1156,10 @@ (or (window--try-to-split-window (get-largest-window frame-to-use t)) (window--try-to-split-window - (get-lru-window frame-to-use t)))) - (window--display-buffer-2 buffer window-to-use))) + (get-lru-window frame-to-use t))))) + (when display-buffer-mark-dedicated + (set-window-dedicated-p window-to-use display-buffer-mark-dedicated)) + (window--display-buffer-2 buffer window-to-use)) ((let ((window-to-undedicate ;; When NOT-THIS-WINDOW is non-nil, temporarily dedicate ;; the selected window to its buffer, to avoid that some of