We will want to be able to activate buttons not in the current
buffer (ie in the message pane) so it is helpful to have a way of
activating a button without signalling error if there is no button.
(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)