update.
[chise/xemacs-chise.git.1] / lisp / list-mode.el
index 25d2418..4544186 100644 (file)
@@ -330,19 +330,13 @@ If `completion-highlight-first-word-only' is non-nil, then only the start
        (let ((win-width
               (or cl-window-width
                   (if bufferp
-                      ;; This needs fixing for the case of windows 
-                      ;; that aren't the same width's the frame.
-                      ;; Sadly, the window it will appear in is not known
-                      ;; until after the text has been made.
-
                       ;; We have to use last-nonminibuf-frame here
                       ;; and not selected-frame because if a
                       ;; minibuffer-only frame is being used it will
                       ;; be the selected-frame at the point this is
                       ;; run.  We keep the selected-frame call around
                       ;; just in case.
-                      (frame-width (or (last-nonminibuf-frame)
-                                       (selected-frame)))
+               (window-width (get-lru-window (last-nonminibuf-frame)))
                     80))))
          (let ((count 0)
                (max-width 0)
@@ -571,23 +565,25 @@ Go to the window from which completion was requested."
   (and (button-event-p event)
        ;; Give temporary modes such as isearch a chance to turn off.
        (run-hooks 'mouse-leave-buffer-hook))
-  (or buffer (setq buffer (symbol-value-in-buffer
-                          'completion-reference-buffer
-                          (or (and (button-event-p event)
-                                   (event-buffer event))
-                              (current-buffer)))))
-  (save-selected-window
-   (and (button-event-p event)
-       (select-window (event-window event)))
-   (if (and (one-window-p t 'selected-frame)
-           (window-dedicated-p (selected-window)))
-       ;; This is a special buffer's frame
-       (iconify-frame (selected-frame))
-     (or (window-dedicated-p (selected-window))
-        (bury-buffer))))
-  (choose-completion-string (extent-string extent)
-                           buffer
-                           completion-base-size))
+  (let ((list-buffer (or (and (button-event-p event)
+                             (event-buffer event))
+                        (current-buffer))))
+    (or buffer (setq buffer (symbol-value-in-buffer
+                            'completion-reference-buffer
+                            list-buffer)))
+    (save-selected-window
+      (and (button-event-p event)
+          (select-window (event-window event)))
+      (if (and (one-window-p t 'selected-frame)
+              (window-dedicated-p (selected-window)))
+         ;; This is a special buffer's frame
+         (iconify-frame (selected-frame))
+       (or (window-dedicated-p (selected-window))
+           (bury-buffer))))
+    (choose-completion-string (extent-string extent)
+                             buffer
+                             (symbol-value-in-buffer 'completion-base-size
+                                                     list-buffer))))
 
 ;; Delete the longest partial match for STRING
 ;; that can be found before POINT.