summaryrefslogtreecommitdiff
path: root/lisp/info-look.el
diff options
context:
space:
mode:
authorMartin Rudalics <rudalics@gmx.at>2008-11-23 17:40:27 +0000
committerMartin Rudalics <rudalics@gmx.at>2008-11-23 17:40:27 +0000
commit2faede351aec0a9eb680dcc89bdd66e70df848ab (patch)
tree06e0b322a3f9d5f0b0937b5a278d7b957f38b610 /lisp/info-look.el
parentb0857706e4bc6d09dc04f46766f6bde39a836f80 (diff)
downloademacs-2faede351aec0a9eb680dcc89bdd66e70df848ab.tar.gz
(info-lookup): When Info buffer is visible on
another frame, raise that frame.
Diffstat (limited to 'lisp/info-look.el')
-rw-r--r--lisp/info-look.el33
1 files changed, 17 insertions, 16 deletions
diff --git a/lisp/info-look.el b/lisp/info-look.el
index fc8ff1e578b..1373de9e24a 100644
--- a/lisp/info-look.el
+++ b/lisp/info-look.el
@@ -335,22 +335,23 @@ If optional argument QUERY is non-nil, query for the help mode."
(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)