(let ((button (or button (button-at (point)))))
(when button (button-activate button))))
+(defun notmuch-pick-close-message-pane-and (func)
+ "Close message pane and execute FUNC.
+
+This function returns a function (so can be used as a keybinding)
+which closes the message pane if open and then executes function
+FUNC."
+ `(lambda ()
+ ,(concat "(Close message pane and) " (documentation func t))
+ (interactive)
+ (notmuch-pick-close-message-window)
+ (call-interactively #',func)))
+
(defvar notmuch-pick-mode-map
(let ((map (make-sparse-keymap)))
(define-key map [mouse-1] 'notmuch-pick-show-message)
(define-key map (kbd "TAB") (notmuch-pick-to-message-pane #'notmuch-show-next-button))
(define-key map "e" (notmuch-pick-to-message-pane #'notmuch-pick-button-activate))
+ ;; bindings from show (or elsewhere) but we close the message pane first.
+ (define-key map "V" (notmuch-pick-close-message-pane-and #'notmuch-show-view-raw-message))
+ (define-key map "?" (notmuch-pick-close-message-pane-and #'notmuch-help))
+
;; The main pick bindings
(define-key map "q" 'notmuch-pick-quit)
(define-key map "x" 'notmuch-pick-quit)
- (define-key map "?" 'notmuch-help)
(define-key map "a" 'notmuch-pick-archive-message-then-next)
(define-key map "=" 'notmuch-pick-refresh-view)
(define-key map "s" 'notmuch-pick-to-search)