aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAlan Mackenzie2021-01-31 11:20:50 +0000
committerAlan Mackenzie2021-01-31 11:20:50 +0000
commit686caed4af6e92ae908f482151fa3da87aeab8ec (patch)
tree1f306ea8451a112d14837d7238e6bc17c310da6e
parent5cf9b915fa3557b4cd9e36ef8068d40b68ee485a (diff)
downloademacs-686caed4af6e92ae908f482151fa3da87aeab8ec.tar.gz
emacs-686caed4af6e92ae908f482151fa3da87aeab8ec.zip
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.
-rw-r--r--lisp/international/quail.el13
1 files changed, 9 insertions, 4 deletions
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)."
2027 (bury-buffer quail-completion-buf) 2027 (bury-buffer quail-completion-buf)
2028 2028
2029 ;; Then, show the guidance. 2029 ;; Then, show the guidance.
2030 (when (and (quail-require-guidance-buf) 2030 (when (and
2031 (not input-method-use-echo-area) 2031 ;; Don't try to display guidance on an expired minibuffer. This
2032 (null unread-command-events) 2032 ;; would go into an infinite wait rather than executing the user's
2033 (null unread-post-input-method-events)) 2033 ;; command. Bug #45792.
2034 (not (eq major-mode 'minibuffer-inactive-mode))
2035 (quail-require-guidance-buf)
2036 (not input-method-use-echo-area)
2037 (null unread-command-events)
2038 (null unread-post-input-method-events))
2034 (if (minibufferp) 2039 (if (minibufferp)
2035 (if (eq (minibuffer-window) (frame-root-window)) 2040 (if (eq (minibuffer-window) (frame-root-window))
2036 ;; Use another frame. It is sure that we are using some 2041 ;; Use another frame. It is sure that we are using some