emacs: Make message-summary button begin at beginning of line.

Otherwise, RET is unreliable for opening/closing messages when
navigating through messages with 'n' and 'p'.
This commit is contained in:
Carl Worth 2009-12-03 10:37:35 -08:00
parent 6945e7e103
commit fcc36df1fa

View file

@ -695,8 +695,11 @@ which this thread was originally shown."
(set-marker beg nil) (set-marker beg nil)
(set-marker end nil) (set-marker end nil)
))) )))
(defun notmuch-fontify-headers () (defun notmuch-fontify-headers ()
(progn (progn
(while (looking-at "[[:space:]]")
(forward-char))
(if (looking-at "[Tt]o:") (if (looking-at "[Tt]o:")
(progn (progn
(overlay-put (make-overlay (point) (re-search-forward ":")) (overlay-put (make-overlay (point) (re-search-forward ":"))
@ -727,38 +730,35 @@ which this thread was originally shown."
(forward-line) (forward-line)
(let ((beg (point-marker)) (let ((beg (point-marker))
(summary-end (copy-marker (line-beginning-position 2))) (summary-end (copy-marker (line-beginning-position 2)))
(subject-end (copy-marker (line-end-position 2)))
(invis-spec (make-symbol "notmuch-show-header"))
(btn nil)) (btn nil))
(overlay-put (make-overlay beg summary-end) 'face 'notmuch-message-summary-face)
(setq btn (make-button beg summary-end :type 'notmuch-button-body-toggle-type))
(forward-line 1)
(end-of-line)
(let ((beg-hidden (point-marker)))
(re-search-forward notmuch-show-header-end-regexp) (re-search-forward notmuch-show-header-end-regexp)
(beginning-of-line) (beginning-of-line)
(let ((end (point-marker))) (let ((end (point-marker)))
(indent-rigidly beg end depth)
(goto-char beg) (goto-char beg)
(overlay-put (make-overlay (line-beginning-position) summary-end) 'face 'notmuch-message-summary-face)
(setq btn (make-button (line-beginning-position) summary-end :type 'notmuch-button-body-toggle-type))
(forward-line) (forward-line)
(while (looking-at "[A-Za-z][-A-Za-z0-9]*:") (add-to-invisibility-spec invis-spec)
(overlay-put (make-overlay subject-end end)
'invisible invis-spec)
(make-button (line-beginning-position) subject-end
'invisibility-spec invis-spec
:type 'notmuch-button-headers-toggle-type)
(while (looking-at "[[:space:]]*[A-Za-z][-A-Za-z0-9]*:")
(beginning-of-line) (beginning-of-line)
(notmuch-fontify-headers) (notmuch-fontify-headers)
(forward-line) (forward-line)
) )
(indent-rigidly beg end depth)
(let ((invis-spec (make-symbol "notmuch-show-header")))
(add-to-invisibility-spec (cons invis-spec t))
(overlay-put (make-overlay beg-hidden end)
'invisible invis-spec)
(goto-char beg)
(forward-line)
(make-button (line-beginning-position) (line-end-position)
'invisibility-spec (cons invis-spec t)
:type 'notmuch-button-headers-toggle-type))
(goto-char end) (goto-char end)
(insert "\n") (insert "\n")
(set-marker beg nil) (set-marker beg nil)
(set-marker beg-hidden nil) (set-marker summary-end nil)
(set-marker subject-end nil)
(set-marker end nil) (set-marker end nil)
)) )
btn)) btn))
(defun notmuch-show-markup-message () (defun notmuch-show-markup-message ()