Mercurial > emacs
changeset 22124:10b3c1cd7f18
(quail-completion): Consecutive call of
this command scrolls the Quail completion buffer.
author | Kenichi Handa <handa@m17n.org> |
---|---|
date | Mon, 18 May 1998 01:01:00 +0000 |
parents | 42a41d39c4fb |
children | 8e8f1bc7f743 |
files | lisp/international/quail.el |
diffstat | 1 files changed, 23 insertions(+), 8 deletions(-) [+] |
line wrap: on
line diff
--- a/lisp/international/quail.el Mon May 18 00:59:38 1998 +0000 +++ b/lisp/international/quail.el Mon May 18 01:01:00 1998 +0000 @@ -1637,16 +1637,31 @@ are shown." (interactive) (quail-setup-completion-buf) - (let ((key quail-current-key) - (map (quail-lookup-key quail-current-key))) + (let ((win (get-buffer-window quail-completion-buf 'visible)) + (key quail-current-key) + (map (quail-lookup-key quail-current-key)) + (require-update nil)) (save-excursion (set-buffer quail-completion-buf) - (erase-buffer) - (insert "Possible completion and corresponding translations are:\n") - (quail-completion-1 key map 1) - (goto-char (point-min)) - (display-buffer (current-buffer))) - (quail-update-guidance))) + (if (and win + (equal key quail-current-key) + (eq last-command 'quail-completion)) + ;; The window for Quail completion buffer has already been + ;; shown. We just scroll it appropriately. + (if (pos-visible-in-window-p (point-max) win) + (set-window-start win (point-min)) + (let ((other-window-scroll-buffer quail-completion-buf)) + (scroll-other-window))) + (setq quail-current-key key) + (erase-buffer) + (insert "Possible completion and corresponding translations are:\n") + (quail-completion-1 key map 1) + (goto-char (point-min)) + (display-buffer (current-buffer)) + (setq require-update t))) + (if require-update + (quail-update-guidance))) + (setq this-command 'quail-completion)) ;; List all completions of KEY in MAP with indentation INDENT. (defun quail-completion-1 (key map indent)