diff options
author | Richard M. Stallman <rms@gnu.org> | 1999-01-18 01:10:25 +0000 |
---|---|---|
committer | Richard M. Stallman <rms@gnu.org> | 1999-01-18 01:10:25 +0000 |
commit | d28701c72f24aca5d3be77418a6bf9a7ce37b65b (patch) | |
tree | b6498b8e187e1497a87f851582d9ff43f68418d6 /lisp/progmodes/compile.el | |
parent | fc56773e1ff573c2485033fe7a1507230514ab77 (diff) | |
download | emacs-d28701c72f24aca5d3be77418a6bf9a7ce37b65b.tar.gz |
(compilation-goto-locus): If already in the
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.
Diffstat (limited to 'lisp/progmodes/compile.el')
-rw-r--r-- | lisp/progmodes/compile.el | 35 |
1 files changed, 14 insertions, 21 deletions
diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index 18b1d387b5a..bb7b3f2bffa 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -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. |