+(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))))
+