X-Git-Url: https://git.notmuchmail.org/git?a=blobdiff_plain;f=contrib%2Fnotmuch-pick%2Fnotmuch-pick.el;h=6e71fef8677b4867faf0e227c8d8b8518eab1ead;hb=863d9aa67445adc662bd06aed0266c7073d5bf8d;hp=3b1f85c13997333612b0f356c7c270eac2ae10ff;hpb=d3924d57980db59f8f681ae0a5106fcbc27c1e35;p=notmuch diff --git a/contrib/notmuch-pick/notmuch-pick.el b/contrib/notmuch-pick/notmuch-pick.el index 3b1f85c1..6e71fef8 100644 --- a/contrib/notmuch-pick/notmuch-pick.el +++ b/contrib/notmuch-pick/notmuch-pick.el @@ -208,6 +208,18 @@ This function does not give an error if there is no button." (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) @@ -223,10 +235,13 @@ This function does not give an error if there is no button." (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)