diff options
author | Stefan Monnier <monnier@iro.umontreal.ca> | 2007-03-05 19:57:10 +0000 |
---|---|---|
committer | Stefan Monnier <monnier@iro.umontreal.ca> | 2007-03-05 19:57:10 +0000 |
commit | eb69fe3e0ad2641090ae3222d3d07fea26df318c (patch) | |
tree | 12624e14a4c006050d1fc96dc84a7737e734de29 /lisp/pcomplete.el | |
parent | 86a3e45eea1176c0af1fedc38c11f2959570d5e3 (diff) | |
download | emacs-eb69fe3e0ad2641090ae3222d3d07fea26df318c.tar.gz |
(pcomplete-show-completions): Improve last change, so
as not to use an invisible window and to create a window if none exist.
Diffstat (limited to 'lisp/pcomplete.el')
-rw-r--r-- | lisp/pcomplete.el | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/lisp/pcomplete.el b/lisp/pcomplete.el index 6caffddaa01..c4840059f64 100644 --- a/lisp/pcomplete.el +++ b/lisp/pcomplete.el @@ -974,18 +974,20 @@ Typing SPC flushes the help buffer." (while (with-current-buffer (get-buffer "*Completions*") (setq event (pcomplete-read-event))) (cond - ((event-matches-key-specifier-p event ? ) + ((event-matches-key-specifier-p event ?\s) (set-window-configuration pcomplete-last-window-config) (setq pcomplete-last-window-config nil) (throw 'done nil)) ((or (event-matches-key-specifier-p event 'tab) ;; Needed on a terminal (event-matches-key-specifier-p event 9)) - (save-selected-window - (select-window (get-buffer-window "*Completions*" t)) - (if (pos-visible-in-window-p (point-max)) - (goto-char (point-min)) - (scroll-up))) + (let ((win (or (get-buffer-window "*Completions*" 0) + (display-buffer "*Completions*" + 'not-this-window)))) + (with-selected-window win + (if (pos-visible-in-window-p (point-max)) + (goto-char (point-min)) + (scroll-up)))) (message "")) (t (setq unread-command-events (list event)) |