(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)
(defun notmuch-show-next-button ()
"Advance point to the next button in the buffer."
(interactive)
- (goto-char (button-start (next-button (point)))))
+ (forward-button 1))
(defun notmuch-show-previous-button ()
"Move point back to the previous button in the buffer."
(interactive)
- (goto-char (button-start (previous-button (point)))))
+ (backward-button 1))
(defun notmuch-toggle-invisible-action (cite-button)
(let ((invis-spec (button-get cite-button 'invisibility-spec)))
(force-window-update)
(redisplay t))
+(defun notmuch-show-toggle-current-body ()
+ "Toggle the display of 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 ()
+ "Toggle the display of the current message header."
+ (interactive)
+ (save-excursion
+ (notmuch-show-move-to-current-message-summary-line)
+ (forward-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
(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)
(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)