changeset 1976:eda7eec8f8ad

* etags.el (find-tag-other-window): If another window is already displaying the tag's buffer, explicitly set that window's point to the tag's position.
author Jim Blandy <jimb@redhat.com>
date Tue, 02 Mar 1993 07:22:33 +0000
parents 3334e2489824
children ca6059bb1d6f
files lisp/progmodes/etags.el
diffstat 1 files changed, 9 insertions(+), 2 deletions(-) [+]
line wrap: on
line diff
--- a/lisp/progmodes/etags.el	Tue Mar 02 07:21:44 1993 +0000
+++ b/lisp/progmodes/etags.el	Tue Mar 02 07:22:33 1993 +0000
@@ -658,10 +658,17 @@
   ;; windows.  To prevent this, we save the selected window's point before
   ;; doing find-tag-noselect, and restore it after.
   (let* ((window-point (window-point (selected-window)))
-	 (tagbuf (find-tag-noselect tagname next-p)))
+	 (tagbuf (find-tag-noselect tagname next-p))
+	 (tagpoint (progn (set-buffer tagbuf) (point))))
     (set-window-point (prog1
 			  (selected-window)
-			(switch-to-buffer-other-window tagbuf))
+			(switch-to-buffer-other-window tagbuf)
+			;; We have to set this new window's point; it
+			;; might already have been displaying a
+			;; different portion of tagbuf, in which case
+			;; switch-to-buffer-other-window doesn't set
+			;; the window's point from the buffer.
+			(set-window-point (selected-window) tagpoint))
 		      window-point)))
 ;;;###autoload (define-key ctl-x-4-map "." 'find-tag-other-window)