From: Alan Mackenzie Date: Sun, 31 Jan 2021 11:20:50 +0000 (+0000) Subject: Don't attempt to display input method guidance in expired minibuffers X-Git-Tag: emacs-28.0.90~4008 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=686caed4af6e92ae908f482151fa3da87aeab8ec;p=emacs.git Don't attempt to display input method guidance in expired minibuffers This caused infinite waits in circumstances involving setting an input method in a global minor mode. This commit fixes bug #45792. * lisp/international/quail.el (quail-show-guidance): Test the major mode is not minibuffer-inactive-mode before proceding with the function. --- diff --git a/lisp/international/quail.el b/lisp/international/quail.el index 0901115cffe..c66aa6a5375 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -2027,10 +2027,15 @@ minibuffer and the selected frame has no other windows)." (bury-buffer quail-completion-buf) ;; Then, show the guidance. - (when (and (quail-require-guidance-buf) - (not input-method-use-echo-area) - (null unread-command-events) - (null unread-post-input-method-events)) + (when (and + ;; Don't try to display guidance on an expired minibuffer. This + ;; would go into an infinite wait rather than executing the user's + ;; command. Bug #45792. + (not (eq major-mode 'minibuffer-inactive-mode)) + (quail-require-guidance-buf) + (not input-method-use-echo-area) + (null unread-command-events) + (null unread-post-input-method-events)) (if (minibufferp) (if (eq (minibuffer-window) (frame-root-window)) ;; Use another frame. It is sure that we are using some