summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorKenichi Handa <handa@m17n.org>1998-05-18 01:01:00 +0000
committerKenichi Handa <handa@m17n.org>1998-05-18 01:01:00 +0000
commit845b3593b0c6a439545d753a8642d5d45133cd23 (patch)
tree10297ba2afe8e5a2c1dca05da8454949e2f1562e
parentb60f3d611bc7f1114aa46e66a101b015f79d1c70 (diff)
downloademacs-845b3593b0c6a439545d753a8642d5d45133cd23.tar.gz
(quail-completion): Consecutive call of
this command scrolls the Quail completion buffer.
-rw-r--r--lisp/international/quail.el31
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)