X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=emacs%2Fnotmuch-mua.el;h=00cd9808c1141f8e6ae470eaa63f2482652bfa5d;hb=12621980ee19aa36c76ad16500c4f5a43ca6c6ca;hp=d41c0b3d92d3cf8e260145038ddcc69093bc4b92;hpb=4ceeaf8038ff241f438ad2a5d0bbda1c78aee385;p=notmuch diff --git a/emacs/notmuch-mua.el b/emacs/notmuch-mua.el index d41c0b3d..00cd9808 100644 --- a/emacs/notmuch-mua.el +++ b/emacs/notmuch-mua.el @@ -313,8 +313,9 @@ the From: header is already filled in by notmuch." (ido-completing-read "Send mail From: " notmuch-identities nil nil nil 'notmuch-mua-sender-history (car notmuch-identities))))) +(put 'notmuch-mua-new-mail 'notmuch-prefix-doc "... and prompt for sender") (defun notmuch-mua-new-mail (&optional prompt-for-sender) - "Invoke the notmuch mail composition window. + "Compose new mail. If PROMPT-FOR-SENDER is non-nil, the user will be prompted for the From: address first." @@ -327,9 +328,10 @@ the From: address first." (defun notmuch-mua-new-forward-message (&optional prompt-for-sender) "Invoke the notmuch message forwarding window. +The current buffer must contain an RFC2822 message to forward. + If PROMPT-FOR-SENDER is non-nil, the user will be prompted for the From: address first." - (interactive "P") (if (or prompt-for-sender notmuch-always-prompt-for-sender) (let* ((sender (notmuch-mua-prompt-for-sender)) (address-components (mail-extract-address-components sender)) @@ -339,12 +341,30 @@ the From: address first." (notmuch-mua-forward-message))) (defun notmuch-mua-new-reply (query-string &optional prompt-for-sender reply-all) - "Invoke the notmuch reply window." - (interactive "P") + "Compose a reply to the message identified by QUERY-STRING. + +If PROMPT-FOR-SENDER is non-nil, the user will be prompted for +the From: address first. If REPLY-ALL is non-nil, the message +will be addressed to all recipients of the source message." + +;; In current emacs (24.3) select-active-regions is set to t by +;; default. The reply insertion code sets the region to the quoted +;; message to make it easy to delete (kill-region or C-w). These two +;; things combine to put the quoted message in the primary selection. +;; +;; This is not what the user wanted and is a privacy risk (accidental +;; pasting of the quoted message). We can avoid some of the problems +;; by let-binding select-active-regions to nil. This fixes if the +;; primary selection was previously in a non-emacs window but not if +;; it was in an emacs window. To avoid the problem in the latter case +;; we deactivate mark. + (let ((sender (when prompt-for-sender - (notmuch-mua-prompt-for-sender)))) - (notmuch-mua-reply query-string sender reply-all))) + (notmuch-mua-prompt-for-sender))) + (select-active-regions nil)) + (notmuch-mua-reply query-string sender reply-all) + (deactivate-mark))) (defun notmuch-mua-send-and-exit (&optional arg) (interactive "P")