X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch.el;h=30ab2e8f95d6aaaaf9a604df4f3cdda0b74f2919;hp=9ec89ca0068ec2126e54d5a18c26300c265348b8;hb=b0ccc88146590333eaf255e507f6e9c85598aa15;hpb=8d2f19b896af55d256f970d71727e621255a58cb diff --git a/notmuch.el b/notmuch.el index 9ec89ca0..30ab2e8f 100644 --- a/notmuch.el +++ b/notmuch.el @@ -67,6 +67,8 @@ (define-key map "w" 'notmuch-show-save-attachments) (define-key map "V" 'notmuch-show-view-raw-message) (define-key map "v" 'notmuch-show-view-all-mime-parts) + (define-key map "b" 'notmuch-show-toggle-current-body) + (define-key map "h" 'notmuch-show-toggle-current-header) (define-key map "-" 'notmuch-show-remove-tag) (define-key map "+" 'notmuch-show-add-tag) (define-key map "X" 'notmuch-show-mark-read-then-archive-then-exit) @@ -578,6 +580,26 @@ which this thread was originally shown." (force-window-update) (redisplay t)) +(defun notmuch-show-toggle-current-body () + "Toggle the current message body." + (interactive) + (save-excursion + (notmuch-show-move-to-current-message-summary-line) + (unless (button-at (point)) + (notmuch-show-next-button)) + (push-button)) + ) + +(defun notmuch-show-toggle-current-header () + (interactive) + (save-excursion + (notmuch-show-move-to-current-message-summary-line) + (next-line) + (unless (button-at (point)) + (notmuch-show-next-button)) + (push-button)) + ) + (define-button-type 'notmuch-button-invisibility-toggle-type 'action 'notmuch-toggle-invisible-action 'follow-link t @@ -599,11 +621,13 @@ which this thread was originally shown." (while (< (point) end) (let ((beg-sub (point-marker)) (indent (make-string depth ? )) - (citation "[[:space:]]*>")) + (citation ">")) + (move-to-column depth) (if (looking-at citation) (progn (while (looking-at citation) - (forward-line)) + (forward-line) + (move-to-column depth)) (let ((overlay (make-overlay beg-sub (point))) (invis-spec (make-symbol "notmuch-citation-region"))) (add-to-invisibility-spec invis-spec) @@ -611,14 +635,13 @@ which this thread was originally shown." (let ((p (point-marker)) (cite-button-text (concat "[" (number-to-string (count-lines beg-sub (point))) - "-line citation.]"))) + "-line citation. Click/Enter to show.]"))) (goto-char (- beg-sub 1)) (insert (concat "\n" indent)) (insert-button cite-button-text 'invisibility-spec invis-spec :type 'notmuch-button-citation-toggle-type) - (insert "\n") - (goto-char (+ (length cite-button-text) p)) + (forward-line) )))) (move-to-column depth) (if (looking-at notmuch-show-signature-regexp)