Tweak window handling in vc-pull-and-push

* lisp/vc/vc-dispatcher.el (vc--inhibit-async-window): Rename
variable.
(vc-do-async-command): Allow inhibiting all window changes.

* lisp/vc/vc-git.el (vc-git-pull-and-push): Don't pop up the
window asynchronously on the "pull" because that gets in the way
of doing other things.
This commit is contained in:
Lars Ingebrigtsen 2022-09-24 22:43:26 +02:00
parent be9e51f61f
commit d98ee76776
2 changed files with 7 additions and 8 deletions

View file

@ -425,7 +425,7 @@ case, and the process object in the asynchronous case."
command file-or-list flags))
status)))))
(defvar vc--inhibit-change-window-start nil)
(defvar vc--inhibit-async-window nil)
(defun vc-do-async-command (buffer root command &rest args)
"Run COMMAND asynchronously with ARGS, displaying the result.
@ -436,7 +436,7 @@ The process object is returned.
Display the buffer in some window, but don't select it."
(let ((dir default-directory)
(inhibit-read-only t)
window new-window-start proc)
new-window-start proc)
(setq buffer (get-buffer-create buffer))
(if (get-buffer-process buffer)
(error "Another VC action on %s is running" root))
@ -459,10 +459,9 @@ Display the buffer in some window, but don't select it."
(insert "\"...\n")
args))))
(setq proc (apply #'vc-do-command t 'async command nil args))))
(setq window (display-buffer buffer))
(when (and window
(not vc--inhibit-change-window-start))
(set-window-start window new-window-start))
(unless vc--inhibit-async-window
(when-let ((window (display-buffer buffer)))
(set-window-start window new-window-start)))
proc))
(defvar compilation-error-regexp-alist)

View file

@ -1150,11 +1150,11 @@ for the Git command to run."
(with-current-buffer (process-buffer proc)
(if (and (eq (process-status proc) 'exit)
(zerop (process-exit-status proc)))
(let ((vc--inhibit-change-window-start t))
(let ((vc--inhibit-async-window t))
(vc-git-push nil))
(vc-exec-after
(lambda ()
(let ((vc--inhibit-change-window-start t))
(let ((vc--inhibit-async-window t))
(vc-git-push nil)))
proc))))))