emacs: notmuch-lib: add refresh all buffers function

notmuch-refresh-all-buffers calls each buffer's major mode specific
refresh function using the generic notmuch-refresh-this-buffer function.

Since the earlier changesets have stopped the refresh functions from
forcing the buffers to be redisplayed this can refresh buffers that
are not currently displayed without disturbing the user.  This is very
useful for silent async background updating the emacs display when new
mail is fetched.

Signed-off-by: Ioan-Adrian Ratiu <adi@adirat.com>
This commit is contained in:
Ioan-Adrian Ratiu 2016-10-15 08:32:45 +01:00 committed by David Bremner
parent 4954bc50e8
commit 02d3c76102

View file

@ -426,6 +426,21 @@ of its command symbol."
(notmuch-poll)
(notmuch-refresh-this-buffer))
(defun notmuch-refresh-all-buffers ()
"Invoke `notmuch-refresh-this-buffer' on all notmuch major-mode buffers.
The buffers are silently refreshed, i.e. they are not forced to
be displayed."
(interactive)
(dolist (buffer (buffer-list))
(let ((buffer-mode (buffer-local-value 'major-mode buffer)))
(when (memq buffer-mode '(notmuch-show-mode
notmuch-tree-mode
notmuch-search-mode
notmuch-hello-mode))
(with-current-buffer buffer
(notmuch-refresh-this-buffer))))))
(defun notmuch-prettify-subject (subject)
;; This function is used by `notmuch-search-process-filter' which
;; requires that we not disrupt its' matching state.