(vc-annotate): Select temp-buffer before running vc-exec-after.
authorStefan Monnier <monnier@iro.umontreal.ca>
Tue, 7 Aug 2007 03:32:24 +0000 (03:32 +0000)
committerStefan Monnier <monnier@iro.umontreal.ca>
Tue, 7 Aug 2007 03:32:24 +0000 (03:32 +0000)
Select the buffer's window before moving point.

lisp/ChangeLog
lisp/vc.el

index 5a64a29..f8bf2d8 100644 (file)
@@ -1,3 +1,8 @@
+2007-08-07  Stefan Monnier  <monnier@iro.umontreal.ca>
+
+       * vc.el (vc-annotate): Select temp-buffer before running vc-exec-after.
+       Select the buffer's window before moving point.
+
 2007-08-07  Richard Stallman  <rms@gnu.org>
 
        * term.el (term): Remove parent group `unix'.
@@ -50,7 +55,7 @@
 
        * term.el: Honor term-default-fg-color and term-default-bg-color
        settings when modifying term-current-face.
-       (term-default-fg-color, term-default-bg-color): Initialized from
+       (term-default-fg-color, term-default-bg-color): Initialize from
        default term-current-face.
        (term-mode, term-reset-terminal): Set term-current-face with
        term-default-fg-color and term-default-bg-color.
index 2b2dd9f..76253bd 100644 (file)
@@ -3272,12 +3272,19 @@ colors. `vc-annotate-background' specifies the background color."
         (set (make-local-variable 'vc-annotate-parent-display-mode)
              display-mode)))
 
-    (vc-exec-after
-     `(progn
-        (when ,current-line
-          (goto-line ,current-line ,temp-buffer-name))
-        (unless (active-minibuffer-window)
-          (message "Annotating... done"))))))
+    (with-current-buffer temp-buffer-name
+      (vc-exec-after
+       `(progn
+          ;; Ideally, we'd rather not move point if the user has already
+          ;; moved it elsewhere, but really point here is not the position
+          ;; of the user's cursor :-(
+          (when ,current-line           ;(and (bobp))
+            (let ((win (get-buffer-window (current-buffer) 0)))
+              (when win
+                (with-selected-window win
+                  (goto-line ,current-line)))))
+          (unless (active-minibuffer-window)
+            (message "Annotating... done")))))))
 
 (defun vc-annotate-prev-version (prefix)
   "Visit the annotation of the version previous to this one.