diff options
author | Kenichi Handa <handa@m17n.org> | 1998-05-18 01:01:00 +0000 |
---|---|---|
committer | Kenichi Handa <handa@m17n.org> | 1998-05-18 01:01:00 +0000 |
commit | 845b3593b0c6a439545d753a8642d5d45133cd23 (patch) | |
tree | 10297ba2afe8e5a2c1dca05da8454949e2f1562e | |
parent | b60f3d611bc7f1114aa46e66a101b015f79d1c70 (diff) | |
download | emacs-845b3593b0c6a439545d753a8642d5d45133cd23.tar.gz |
(quail-completion): Consecutive call of
this command scrolls the Quail completion buffer.
-rw-r--r-- | lisp/international/quail.el | 31 |
1 files changed, 23 insertions, 8 deletions
diff --git a/lisp/international/quail.el b/lisp/international/quail.el index c36f022796d..995ce40fd84 100644 --- a/lisp/international/quail.el +++ b/lisp/international/quail.el @@ -1637,16 +1637,31 @@ All possible translations of the current key and whole possible longer keys 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) |