From: Mark Walters Date: Sat, 15 Oct 2016 18:25:19 +0000 (+0100) Subject: emacs: tree: make tag updates show in the message pane X-Git-Url: http://git.tremily.us/?a=commitdiff_plain;h=8128c7b5aad880e572b9ca4ee509f776bcb3e901;p=notmuch.git 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. --- diff --git a/emacs/notmuch-tree.el b/emacs/notmuch-tree.el index d5587a9c..1ab0810d 100644 --- a/emacs/notmuch-tree.el +++ b/emacs/notmuch-tree.el @@ -364,12 +364,18 @@ updated." (defun notmuch-tree-tag-update-display (&optional tag-changes) "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)) - (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) (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) "Change tags for the current message"