Merge pull request #362 from sabof/overlay-numbers

* use overlays for url numbers
This commit is contained in:
Dirk-Jan C. Binnema 2014-02-08 10:47:40 -08:00
commit 4efd3834d2
1 changed files with 21 additions and 14 deletions

View File

@ -266,6 +266,7 @@ marking if it still had that."
(when (or embedded (not (mu4e~view-mark-as-read msg)))
(let ((inhibit-read-only t))
(erase-buffer)
(delete-all-overlays)
(insert (mu4e-view-message-text msg))
(goto-char (point-min))
(mu4e~fontify-cited)
@ -336,12 +337,12 @@ add text-properties to VAL."
(buffer-string))
"")))
(defun mu4e~view-toggle-contact (&optional point)
(defun* mu4e~view-toggle-contact (&optional point)
"Toggle between the long and short versions of long/short string
at POINT, or if nil, at (point)."
(interactive)
(unless (get-text-property (or point (point)) 'long)
(error "point is not toggleable"))
(return-from mu4e~view-toggle-contact))
(let* ((point (or point (point)))
;; find the first pos part of the button
(start (previous-property-change point))
@ -442,14 +443,16 @@ at POINT, or if nil, at (point)."
(interactive)
(let* (( msg (mu4e~view-get-property-from-event 'mu4e-msg))
( attnum (mu4e~view-get-property-from-event 'mu4e-attnum)))
(mu4e-view-open-attachment msg attnum)))
(when (and msg attnum)
(mu4e-view-open-attachment msg attnum))))
(defun mu4e~view-save-attach-from-binding ()
"Save the attachement at point, or click location."
(interactive)
(let* (( msg (mu4e~view-get-property-from-event 'mu4e-msg))
( attnum (mu4e~view-get-property-from-event 'mu4e-attnum)))
(mu4e-view-save-attachment-single msg attnum)))
(when (and msg attnum)
(mu4e-view-save-attachment-single msg attnum))))
(defun mu4e~view-construct-attachments-header (msg)
"Display attachment information; the field looks like something like:
@ -768,9 +771,10 @@ If the optional argument URL is provided, browse that instead.
If the url is mailto link, start writing an email to that address."
(interactive)
(let* (( url (or url (mu4e~view-get-property-from-event 'mu4e-url))))
(if (string-match-p "^mailto:" url)
(mu4e~compose-browse-url-mail url)
(browse-url url))))
(when url
(if (string-match-p "^mailto:" url)
(mu4e~compose-browse-url-mail url)
(browse-url url)))))
(defun mu4e~view-show-images-maybe (msg)
"Show attached images, if `mu4e-show-images' is non-nil."
@ -798,19 +802,22 @@ Also number them so they can be opened using `mu4e-view-go-to-url'."
(make-hash-table :size 32 :weakness nil))
(goto-char (point-min))
(while (re-search-forward mu4e~view-url-regexp nil t)
(let ((url (match-string 0)))
(let* ((url (match-string 0))
(ov (make-overlay (match-beginning 0) (match-end 0))))
(puthash (incf num) url mu4e~view-link-map)
(add-text-properties 0 (length url)
(add-text-properties
(match-beginning 0)
(match-end 0)
`(face mu4e-link-face
mouse-face highlight
mu4e-url ,url
keymap ,mu4e-view-clickable-urls-keymap
help-echo
"[mouse-1] or [M-RET] to open the link") url)
(replace-match
(concat url
(propertize (format "[%d]" num)
'face 'mu4e-url-number-face))))))))
"[mouse-1] or [M-RET] to open the link"))
(overlay-put ov 'after-string
(propertize (format "[%d]" num)
'face 'mu4e-url-number-face))
)))))
(defun mu4e~view-hide-cited ()