changeset 99856:1c2c0916bc1f

(info-lookup): When Info buffer is visible on another frame, raise that frame.
author Martin Rudalics <rudalics@gmx.at>
date Sun, 23 Nov 2008 17:40:00 +0000
parents 1d5a953406bf
children f70450d3b90a
files lisp/info-look.el
diffstat 1 files changed, 17 insertions(+), 16 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/info-look.el	Sun Nov 23 15:08:52 2008 +0000
+++ b/lisp/info-look.el	Sun Nov 23 17:40:00 2008 +0000
@@ -335,22 +335,23 @@
 	      (cons (list Info-current-file Info-current-node (point))
 		    Info-history))))
          found doc-spec node prefix suffix doc-found)
-    (if (not (eq major-mode 'Info-mode))
-	(if (not info-lookup-other-window-flag)
-	    (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))
-		       (not (eq info-frame (selected-frame))))
-		  (select-frame info-frame)
-		(switch-to-buffer-other-window "*info*"))))))
+    (unless (eq major-mode 'Info-mode)
+      (if (not info-lookup-other-window-flag)
+	  (info)
+	(save-window-excursion (info))
+	(let* ((info-window (get-buffer-window "*info*" t))
+	       (info-frame (and info-window (window-frame info-window))))
+	  (if (and info-frame
+		   (not (eq info-frame (selected-frame)))
+		   (display-multi-frame-p)
+		   (memq info-frame (frames-on-display-list)))
+	      ;; *info* is visible in another frame on same display.
+	      ;; Raise that frame and select the window.
+	      (progn
+		(select-window info-window)
+		(raise-frame info-frame))
+	    ;; In any other case, switch to *info* in another window.
+	    (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)