From 8128c7b5aad880e572b9ca4ee509f776bcb3e901 Mon Sep 17 00:00:00 2001 From: Mark Walters Date: Sat, 15 Oct 2016 19:25:19 +0100 Subject: [PATCH] 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. --- emacs/notmuch-tree.el | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) 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"