From: Stefan Monnier Date: Mon, 12 Apr 2004 23:02:48 +0000 (+0000) Subject: (compile-goto-error): Select the buffer/window corresponding to the event. X-Git-Tag: ttn-vms-21-2-B4~6866 X-Git-Url: http://git.eshelyaron.com/gitweb/?a=commitdiff_plain;h=912f0c34b2e4cca38bf0b4285afaf6b23c90f906;p=emacs.git (compile-goto-error): Select the buffer/window corresponding to the event. --- diff --git a/lisp/progmodes/compile.el b/lisp/progmodes/compile.el index de90c2aa378..b1e4caa5513 100644 --- a/lisp/progmodes/compile.el +++ b/lisp/progmodes/compile.el @@ -1370,12 +1370,14 @@ Use this command in a compilation log buffer. Sets the mark at point there." (interactive (list last-input-event)) (or (compilation-buffer-p (current-buffer)) (error "Not in a compilation buffer")) - (let ((pos (if event (posn-point (event-end event)) (point)))) - (if (get-text-property (point) 'directory) - (dired-other-window (car (get-text-property pos 'directory))) - (push-mark) - (setq compilation-current-error pos) - (next-error 0)))) + (let* ((loc (event-end event)) + (pos (posn-point loc))) + (with-selected-window (posn-window loc) + (if (get-text-property pos 'directory) + (dired-other-window (car (get-text-property pos 'directory))) + (push-mark) + (setq compilation-current-error pos) + (next-error 0))))) ;; Return a compilation buffer. ;; If the current buffer is a compilation buffer, return it.