Yet another fix for 'set-minibuffer-message'
* lisp/minibuffer.el (set-minibuffer-message): Handle the case of separate minibuffer-only frame. Suggested by Gregory Heytings <ghe@sdf.org>.
This commit is contained in:
parent
72dd911981
commit
c37b2a9b42
1 changed files with 40 additions and 35 deletions
|
@ -783,10 +783,14 @@ The text is displayed for `minibuffer-message-clear-timeout' seconds
|
|||
whichever comes first.
|
||||
Unlike `minibuffer-message', this function is called automatically
|
||||
via `set-message-function'."
|
||||
(let* ((minibuf-window (active-minibuffer-window))
|
||||
(minibuf-frame (and (window-live-p minibuf-window)
|
||||
(window-frame minibuf-window))))
|
||||
(when (and (not noninteractive)
|
||||
(window-live-p (active-minibuffer-window))
|
||||
(eq (window-frame) (window-frame (active-minibuffer-window))))
|
||||
(with-current-buffer (window-buffer (active-minibuffer-window))
|
||||
(window-live-p minibuf-window)
|
||||
(or (eq (window-frame) minibuf-frame)
|
||||
(eq (frame-parameter minibuf-frame 'minibuffer) 'only)))
|
||||
(with-current-buffer (window-buffer minibuf-window)
|
||||
(setq message (if (string-match-p "\\` *\\[.+\\]\\'" message)
|
||||
;; Make sure we can put-text-property.
|
||||
(copy-sequence message)
|
||||
|
@ -794,7 +798,8 @@ via `set-message-function'."
|
|||
(unless (or (null minibuffer-message-properties)
|
||||
;; Don't overwrite the face properties the caller has set
|
||||
(text-properties-at 0 message))
|
||||
(setq message (apply #'propertize message minibuffer-message-properties)))
|
||||
(setq message
|
||||
(apply #'propertize message minibuffer-message-properties)))
|
||||
|
||||
(clear-minibuffer-message)
|
||||
|
||||
|
@ -821,7 +826,7 @@ via `set-message-function'."
|
|||
|
||||
;; Return `t' telling the caller that the message
|
||||
;; was handled specially by this function.
|
||||
t)))
|
||||
t))))
|
||||
|
||||
(setq set-message-function 'set-minibuffer-message)
|
||||
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue