]> git.eshelyaron.com Git - emacs.git/commitdiff
(info-lookup): If *info* is shown in another frame
authorGerd Moellmann <gerd@gnu.org>
Thu, 20 Jul 2000 20:35:27 +0000 (20:35 +0000)
committerGerd Moellmann <gerd@gnu.org>
Thu, 20 Jul 2000 20:35:27 +0000 (20:35 +0000)
on the same display, select that frame, instead of switching to
the Info buffer in another window of the selected frame.

lisp/info-look.el

index ec21adc875f39b7bb9f04b9fd2972fe346e99292..e39adb363177d875ef1f0f2ec595626f6a6fb7a3 100644 (file)
@@ -332,8 +332,18 @@ If optional argument QUERY is non-nil, query for the help mode."
     (if (or (not info-lookup-other-window-flag)
            (eq (current-buffer) (get-buffer "*info*")))
        (info)
-      (save-window-excursion (info))
-      (switch-to-buffer-other-window "*info*"))
+      (progn
+       (save-window-excursion (info))
+       ;; Determine whether or not the Info buffer is visible in
+       ;; another frame on the same display.  If it is, simply raise
+       ;; that frame.  Otherwise, display it in another window.
+       (let* ((window (get-buffer-window "*info*" t))
+              (info-frame (and window (window-frame window))))
+         (if (and info-frame
+                  (display-multi-frame-p)
+                  (memq info-frame (frames-on-display-list)))
+           (select-frame info-frame)
+         (switch-to-buffer-other-window "*info*")))))
     (while (and (not found) modes)
       (setq doc-spec (info-lookup->doc-spec topic (car modes)))
       (while (and (not found) doc-spec)