aboutsummaryrefslogtreecommitdiffhomepage
path: root/notmuch.el
diff options
context:
space:
mode:
authorGravatar Carl Worth <cworth@cworth.org>2009-12-03 11:34:01 -0800
committerGravatar Carl Worth <cworth@cworth.org>2009-12-03 11:34:01 -0800
commit11490cfebef4099c00031207c161132fc6363239 (patch)
treef00aaf9ff96fb042c196914dd41d2fcda4c3560f /notmuch.el
parent8e126fe1fb188ecc85ff53134bd9afd3d394b041 (diff)
emacs: Make message-summary button extend to very beginning of message.
There's no visible change here---we're just making the button extend through the invisible portions of the message before the message-summary line. The reason this is important is that it's easy for the user to position point at the (invisible) `point-min', so we want to ensure that there's a valid button there.
Diffstat (limited to 'notmuch.el')
-rw-r--r--notmuch.el19
1 files changed, 15 insertions, 4 deletions
diff --git a/notmuch.el b/notmuch.el
index 54b4ba86..bf7e46f6 100644
--- a/notmuch.el
+++ b/notmuch.el
@@ -729,7 +729,18 @@ which this thread was originally shown."
(overlay-put (make-overlay (point) (re-search-forward ".*$"))
'face 'message-header-other)))))))
-(defun notmuch-show-markup-header (depth)
+(defun notmuch-show-markup-header (message-begin depth)
+ "Buttonize and decorate faces in a message header.
+
+MESSAGE-BEGIN is the position of the absolute first character in
+the message (including all delimiters that will end up being
+invisible etc.). This is to allow a button to reliably extend to
+the beginning of the message even if point is positioned at an
+invisible character (such as the beginning of the buffer).
+
+DEPTH specifies the depth at which this message appears in the
+tree of the current thread, (the top-level messages have depth 0
+and each reply increases depth by 1)."
(re-search-forward notmuch-show-header-begin-regexp)
(forward-line)
(let ((beg (point-marker))
@@ -742,7 +753,7 @@ which this thread was originally shown."
(let ((end (point-marker)))
(indent-rigidly beg end depth)
(goto-char beg)
- (setq btn (make-button (line-beginning-position) summary-end :type 'notmuch-button-body-toggle-type))
+ (setq btn (make-button message-begin summary-end :type 'notmuch-button-body-toggle-type))
(forward-line)
(add-to-invisibility-spec invis-spec)
(overlay-put (make-overlay subject-end end)
@@ -766,11 +777,11 @@ which this thread was originally shown."
(defun notmuch-show-markup-message ()
(if (re-search-forward notmuch-show-message-begin-regexp nil t)
- (progn
+ (let ((message-begin (match-beginning 0)))
(re-search-forward notmuch-show-depth-regexp)
(let ((depth (string-to-number (buffer-substring (match-beginning 1) (match-end 1))))
(btn nil))
- (setq btn (notmuch-show-markup-header depth))
+ (setq btn (notmuch-show-markup-header message-begin depth))
(notmuch-show-markup-body depth btn)))
(goto-char (point-max))))