emacs: tree: make tag updates show in the message pane

This makes tag changes appear in the message pane as well as in the
tree window.

Note that the message pane is reloaded each time a message is viewed
so the tags shown in the message pane can still be different from
those in the tree window. Usually this will just be that the tag
change is still shown as a change (strikethough underline etc) in the
tree window, and are shown after the change in the message
pane. However, if something else updates the database then the tags
shown can be genuinely different.
This commit is contained in:
Mark Walters 2016-10-15 19:25:19 +01:00 committed by David Bremner
parent 0c6cd0fb02
commit 8128c7b5aa

View file

@ -364,12 +364,18 @@ updated."
(defun notmuch-tree-tag-update-display (&optional tag-changes) (defun notmuch-tree-tag-update-display (&optional tag-changes)
"Update display for TAG-CHANGES to current message. "Update display for TAG-CHANGES to current message.
Does NOT change the database." Updates the message in the message pane if appropriate, but does
NOT change the database."
(let* ((current-tags (notmuch-tree-get-tags)) (let* ((current-tags (notmuch-tree-get-tags))
(new-tags (notmuch-update-tags current-tags tag-changes))) (new-tags (notmuch-update-tags current-tags tag-changes))
(tree-msg-id (notmuch-tree-get-message-id)))
(unless (equal current-tags new-tags) (unless (equal current-tags new-tags)
(notmuch-tree-set-tags new-tags) (notmuch-tree-set-tags new-tags)
(notmuch-tree-refresh-result)))) (notmuch-tree-refresh-result)
(when (window-live-p notmuch-tree-message-window)
(with-selected-window notmuch-tree-message-window
(when (string= tree-msg-id (notmuch-show-get-message-id))
(notmuch-show-update-tags new-tags)))))))
(defun notmuch-tree-tag (tag-changes) (defun notmuch-tree-tag (tag-changes)
"Change tags for the current message" "Change tags for the current message"