X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=contrib%2Fnotmuch-pick%2Fnotmuch-pick.el;h=f24f2b311af1d6f3c3fc1db1ad9f7da98d8e06e3;hp=89e6d4b7965d79d41f01ec21e52466ec62f3f954;hb=415d5da7dd06a17648549fa42ac3574ef0ccc661;hpb=5728d178f7c525a57e1430e6e069b88e05196db8 diff --git a/contrib/notmuch-pick/notmuch-pick.el b/contrib/notmuch-pick/notmuch-pick.el index 89e6d4b7..f24f2b31 100644 --- a/contrib/notmuch-pick/notmuch-pick.el +++ b/contrib/notmuch-pick/notmuch-pick.el @@ -187,6 +187,27 @@ if the user has loaded a different buffer in that window.") (make-variable-buffer-local 'notmuch-pick-message-buffer) (put 'notmuch-pick-message-buffer 'permanent-local t) +(defun notmuch-pick-to-message-pane (func) + "Execute FUNC in message pane. + +This function returns a function (so can be used as a keybinding) +which executes function FUNC in the message pane if it is +open (if the message pane is closed it does nothing)." + `(lambda () + ,(concat "(In message pane) " (documentation func t)) + (interactive) + (when (window-live-p notmuch-pick-message-window) + (with-selected-window notmuch-pick-message-window + (call-interactively #',func))))) + +(defun notmuch-pick-button-activate (&optional button) + "Activate BUTTON or button at point + +This function does not give an error if there is no button." + (interactive) + (let ((button (or button (button-at (point))))) + (when button (button-activate button)))) + (defvar notmuch-pick-mode-map (let ((map (make-sparse-keymap))) (define-key map [mouse-1] 'notmuch-pick-show-message)