Function: minibuffer--nonselected-check
minibuffer--nonselected-check is a byte-compiled function defined in
minibuffer.el.gz.
Signature
(minibuffer--nonselected-check FRAME)
Documentation
Check if active minibuffer window is no longer selected.
Use overlay to highlight its contents when another window is selected.
But don't highlight when the *Completions* window is selected or the
buffer-local value of completion-reference-buffer in the selected
window's buffer equals the buffer of the active minibuffer window.
Source Code
;; Defined in /usr/src/emacs/lisp/minibuffer.el.gz
(defun minibuffer--nonselected-check (_frame)
"Check if active minibuffer window is no longer selected.
Use overlay to highlight its contents when another window is selected.
But don't highlight when the *Completions* window is selected or the
buffer-local value of `completion-reference-buffer' in the selected
window's buffer equals the buffer of the active minibuffer window."
(let* ((active-minibuffer-window (active-minibuffer-window))
(active-minibuffer (when active-minibuffer-window
(window-buffer active-minibuffer-window))))
(cond
((or (not active-minibuffer-window)
(eq active-minibuffer-window (selected-window))
(equal (buffer-name (window-buffer)) "*Completions*")
(eq (buffer-local-value
'completion-reference-buffer (window-buffer))
active-minibuffer))
;; When there's no active minibuffer window or either the
;; minibuffer or the *Completions* window is selected or the
;; buffer-local value of 'completion-reference-buffer' in the
;; selected window's buffer equals the buffer of the active
;; minibuffer window, remove the overlay if it exists.
(when minibuffer--nonselected-overlay
(delete-overlay minibuffer--nonselected-overlay)))
((not minibuffer--nonselected-overlay)
;; When there's an active minibuffer window and neither it nor the
;; *Completions* window is selected and there is no overlay, make
;; the overlay in the active minibuffer.
(with-current-buffer active-minibuffer
(setq minibuffer--nonselected-overlay
(make-overlay (point-min) (point-max)))
(overlay-put
minibuffer--nonselected-overlay 'face 'minibuffer-nonselected)
(overlay-put
minibuffer--nonselected-overlay 'evaporate t)))
((not (eq (overlay-buffer minibuffer--nonselected-overlay)
active-minibuffer))
;; When there is an overlay but it is not in the active minibuffer
;; move it to that buffer.
(with-current-buffer active-minibuffer
(move-overlay minibuffer--nonselected-overlay
(point-min) (point-max) active-minibuffer))))))