]> git.eshelyaron.com Git - emacs.git/commitdiff
(compilation-goto-locus): If already in the
authorRichard M. Stallman <rms@gnu.org>
Mon, 18 Jan 1999 01:10:25 +0000 (01:10 +0000)
committerRichard M. Stallman <rms@gnu.org>
Mon, 18 Jan 1999 01:10:25 +0000 (01:10 +0000)
compilation buffer's window, keep it in that window.
(compile-mouse-goto-error): Add Doc.  Don't play with windows.
(compile-goto-error): Don't play with windows.

lisp/progmodes/compile.el

index 18b1d387b5ad7bf73afb3fe4bced04203519e833..bb7b3f2bffa7cc343953b95295e761d5a7e60ffa 100644 (file)
@@ -1270,6 +1270,9 @@ Does NOT find the source line like \\[next-error]."
            )))))
 
 (defun compile-mouse-goto-error (event)
+  "Visit the source for the error message the mouse is pointing at.
+This is like `compile-goto-error' called without prefix arg
+at the end of the line."
   (interactive "e")
   (save-excursion
     (set-buffer (window-buffer (posn-window (event-end event))))
@@ -1297,14 +1300,6 @@ Does NOT find the source line like \\[next-error]."
     (or compilation-error-list
        (error "No error to go to")))
   (select-window (posn-window (event-end event)))
-  ;; Move to another window, so that next-error's window changes
-  ;; result in the desired setup.
-  (or (one-window-p)
-      (progn
-       (other-window -1)
-       ;; other-window changed the selected buffer,
-       ;; but we didn't want to do that.
-       (set-buffer compilation-last-buffer)))
 
   (push-mark)
   (next-error 1))
@@ -1330,15 +1325,6 @@ other kinds of prefix arguments are ignored."
              (> (point) (car (car compilation-error-list))))
     (setq compilation-error-list (cdr compilation-error-list)))
 
-  ;; Move to another window, so that next-error's window changes
-  ;; result in the desired setup.
-  (or (one-window-p)
-      (progn
-       (other-window -1)
-       ;; other-window changed the selected buffer,
-       ;; but we didn't want to do that.
-       (set-buffer compilation-last-buffer)))
-
   (push-mark)
   (next-error 1))
 
@@ -1583,10 +1569,17 @@ The current buffer should be the desired compilation output buffer."
   "Jump to an error locus returned by `compilation-next-error-locus'.
 Takes one argument, a cons (ERROR . SOURCE) of two markers.
 Selects a window with point at SOURCE, with another window displaying ERROR."
-  (if (and (window-dedicated-p (selected-window))
-          (eq (selected-window) (frame-root-window)))
-      (switch-to-buffer-other-frame (marker-buffer (cdr next-error)))
-    (switch-to-buffer (marker-buffer (cdr next-error))))
+  (if (eq (window-buffer (selected-window))
+         (marker-buffer (car next-error)))
+      ;; If the compilation buffer window is selected,
+      ;; keep the compilation buffer in this window;
+      ;; display the source in another window.
+      (let ((pop-up-windows t))
+       (pop-to-buffer (marker-buffer (cdr next-error))))
+    (if (and (window-dedicated-p (selected-window))
+            (eq (selected-window) (frame-root-window)))
+       (switch-to-buffer-other-frame (marker-buffer (cdr next-error)))
+      (switch-to-buffer (marker-buffer (cdr next-error)))))
   (goto-char (cdr next-error))
   ;; If narrowing got in the way of
   ;; going to the right place, widen.