mu4e/mu: optimize mark-as-read

Since cd649efb6b, opening an unread message first does a proc-move,
then proc-view.

Reason is that while we get the (:update ... ) from the move, that only
contains a skeleton message; we need the full view get images etc. This
means that we render the message _twice_.

Here we change add a flag for move to _not_ send the (:update ..), so
only the (:view ...) will trigger rendering of the message.
This commit is contained in:
djcb
2018-08-12 13:46:55 +03:00
parent 6e646ea794
commit a4398ac93d
3 changed files with 40 additions and 32 deletions

View File

@ -901,8 +901,9 @@ changes, it triggers a refresh."
;; is a new message
(when (and docid (or (member 'unread flags) (member 'new flags)))
;; mark /all/ messages with this message-id as read, so all copies of
;; this message will be marked as read.
(mu4e~proc-move msgid nil "+S-u-N")
;; this message will be marked as read. We don't want an update thougn,
;; we want a full message, so images etc. work correctly.
(mu4e~proc-move msgid nil "+S-u-N" 'noupdate)
(mu4e~proc-view docid mu4e-view-show-images (mu4e~decrypt-p msg))
t))))