Promptly disable 'completion-in-region-mode' (bug#67001)

Avoid keeping 'completion-in-region-mode' on when exiting
'completion--in-region-1' if the *Completions* buffer isn't shown.
Otherwise, the bindings from 'completion-in-region-mode-map' linger,
notable shadowing other bindings for TAB.

* lisp/minibuffer.el (completion--in-region-1): Disable
'completion-in-region-mode' if the *Completions* buffer isn't visible.
This commit is contained in:
Eshel Yaron 2023-11-08 18:27:03 +01:00 committed by Juri Linkov
parent 1cb738a482
commit 5416896d60

View file

@ -1561,11 +1561,12 @@ scroll the window of possible completions."
(t (prog1 (pcase (completion--do-completion beg end)
(#b000 nil)
(_ t))
(when (and (eq completion-auto-select t)
(window-live-p minibuffer-scroll-window)
(eq t (frame-visible-p (window-frame minibuffer-scroll-window))))
;; When the completion list window was displayed, select it.
(switch-to-completions))))))
(if (window-live-p minibuffer-scroll-window)
(and (eq completion-auto-select t)
(eq t (frame-visible-p (window-frame minibuffer-scroll-window)))
;; When the completion list window was displayed, select it.
(switch-to-completions))
(completion-in-region-mode -1))))))
(defun completion--cache-all-sorted-completions (beg end comps)
(add-hook 'after-change-functions