]> git.notmuchmail.org Git - notmuch/commit - emacs/notmuch-tree.el
emacs: notmuch-tree: mark the initial message at point as read
authorJonas Bernoulli <jonas@bernoul.li>
Tue, 16 Feb 2021 00:01:38 +0000 (01:01 +0100)
committerDavid Bremner <david@tethera.net>
Sun, 25 Jul 2021 18:15:33 +0000 (15:15 -0300)
commitb649b0c871e7fbfcd15a24d51b071bad2680e5d2
tree5802ae03c07e35036c28ba1879cfce99647dd880
parentbed62eb8bee4aeca1fabfa5e302b515849f50b31
emacs: notmuch-tree: mark the initial message at point as read

When moving between message in a tree or show buffer, the message at
point is marked as read.  Likewise when creating such a buffer, then
the message that is initially at point is supposed to be marked as
read as well.

The latter worked for `notmuch-show' but not for `notmuch-tree'.
Press "RET" or "M-RET" in a search buffer to observe these behaviors.

In both cases the marking is supposed to be done by the function
`notmuch-show-command-hook'.  In the case of `notmuch-show' that
function is added directly to `post-command-hook'.

`notmuch-tree' instead adds the function `notmuch-tree-command-hook'
to `post-command-hook' and that calls `notmuch-show-command-hook',
in the respective show buffer, but of course only if that exists.

Because the tree buffer is created asynchronously, the show buffer
doesn't exist yet by the time the `post-command-hook' is run, so
we have to explicitly run `notmuch-tree-command-hook' once the
show buffer exists.

The show buffer is created when `notmuch-tree-goto-and-insert-msg'
calls `notmuch-tree-show-message-in'.  `notmuch-tree-process-filter'
is what finally brings us here.
emacs/notmuch-tree.el