(let* ((keyseq (read-key-sequence
(and input-method-use-echo-area
(concat input-method-previous-message
- quail-current-str))))
+ quail-current-str))
+ nil nil t))
(cmd (lookup-key (quail-translation-keymap) keyseq)))
(if (if key
(and (commandp cmd) (not (eq cmd 'quail-other-command)))
(and input-method-use-echo-area
(concat input-method-previous-message
quail-conversion-str
- quail-current-str))))
+ quail-current-str))
+ nil nil t))
(cmd (lookup-key (quail-conversion-keymap) keyseq)))
(if (if key (commandp cmd) (eq cmd 'quail-self-insert-command))
(progn
(set-buffer-modified-p nil)))
(bury-buffer quail-guidance-buf)
+ ;; Assign the buffer " *Minibuf-N*" to all windows which are now
+ ;; displaying quail-guidance-buf.
+ (let ((win-list (get-buffer-window-list quail-guidance-buf t t)))
+ (while win-list
+ (set-window-buffer (car win-list)
+ (format " *Minibuf-%d*" (minibuffer-depth)))
+ (setq win-list (cdr win-list))))
+
;; Then, display it in an appropriate window.
(let ((win (minibuffer-window)))
(if (or (eq (selected-window) win)
win)
(while win-list
(setq win (car win-list) win-list (cdr win-list))
- (if (eq win (minibuffer-window))
+ (if (window-minibuffer-p win)
;; We are using echo area for the guidance buffer.
;; Vacate it to the deepest minibuffer.
(set-window-buffer win
;;(set-window-dedicated-p win nil)
(delete-frame (window-frame win)))
;;(set-window-dedicated-p win nil)
- (delete-window win)))))))
+ (delete-window win))))
+ (setq quail-guidance-win nil))))
(defun quail-update-guidance ()
"Update the Quail guidance buffer and completion buffer (if displayed now)."
;; Update guidance buffer.
(if (quail-require-guidance-buf)
(let ((guidance (quail-guidance)))
+ (or (and (eq (selected-frame) (window-frame (minibuffer-window)))
+ (eq (selected-frame) (window-frame quail-guidance-win)))
+ (quail-show-guidance-buf))
(cond ((or (eq guidance t)
(consp guidance))
;; Show the current possible translations.