X-Git-Url: https://git.cworth.org/git?a=blobdiff_plain;f=contrib%2Fnotmuch-pick%2Fnotmuch-pick.el;h=6e71fef8677b4867faf0e227c8d8b8518eab1ead;hb=863d9aa67445adc662bd06aed0266c7073d5bf8d;hp=f24f2b311af1d6f3c3fc1db1ad9f7da98d8e06e3;hpb=415d5da7dd06a17648549fa42ac3574ef0ccc661;p=obsolete%2Fnotmuch-old diff --git a/contrib/notmuch-pick/notmuch-pick.el b/contrib/notmuch-pick/notmuch-pick.el index f24f2b31..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) @@ -216,9 +228,20 @@ This function does not give an error if there is no button." (define-key map "w" 'notmuch-show-save-attachments) (define-key map "v" 'notmuch-show-view-all-mime-parts) (define-key map "c" 'notmuch-show-stash-map) + + ;; these apply to the message pane + (define-key map (kbd "M-TAB") (notmuch-pick-to-message-pane #'notmuch-show-previous-button)) + (define-key map (kbd "") (notmuch-pick-to-message-pane #'notmuch-show-previous-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)