Previously we inserted the lazy part at the start of the line after the part button. But if this line had some text properties (e.g. the colours for a following message header) then the lazy part gets these properties. Thus we start at the end of the part button line, insert a newline, insert the lazy part, and then delete the extra newline at the end of the part. --- I found a bug in the lazy-part patch set (v4): the problem can be seen if you find a multipart/alternative text/plain text/html message with a reply following it. Before this extra patch the lazy-part gets inserted with the wrong text properties: in particular it gets the special background colour that the headerline of a message gets in the show view. I think this was why I had the "lazy part" text before but this is probably better. I can fold this into the main series but I thought I would ask for comments on this change first. Best wishes Mark emacs/notmuch-show.el | 12 ++++++++++-- 1 files changed, 10 insertions(+), 2 deletions(-) diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el index 92f481b..453ff54 100644 --- a/emacs/notmuch-show.el +++ b/emacs/notmuch-show.el @@ -818,9 +818,15 @@ message at DEPTH in the current thread." t)) (defun notmuch-show-lazy-part (part-args button) - ;; Insert the lazy part after the button for the part. + ;; Insert the lazy part after the button for the part. We would just + ;; move to the start of the new line following the button and insert + ;; the part but that point might have text properties (eg colours + ;; from a message header etc) so instead we start from the last + ;; character of the button by adding a newline and finish by + ;; removing the extra newline from the end of the part. (save-excursion - (goto-char (1+ (button-end button))) + (goto-char (button-end button)) + (insert "\n") (let* ((inhibit-read-only t) ;; We need to use markers for the start and end of the part ;; because the part insertion functions do not guarantee @@ -835,6 +841,8 @@ message at DEPTH in the current thread." (delete-region part-beg part-end) (apply #'notmuch-show-insert-bodypart-internal part-args) (indent-rigidly part-beg part-end depth)) + (goto-char part-end) + (delete-char 1) ;; Create the overlay. If the lazy-part turned out to be empty/not ;; showable this returns nil. (notmuch-show-create-part-overlays button part-beg part-end)))) -- 1.7.9.1