From 2ae45c33924307e6a1ff56a385bdfd023fbd9c93 Mon Sep 17 00:00:00 2001 From: Mark Walters Date: Sun, 15 Sep 2013 09:17:48 +0100 Subject: [PATCH] contrib: pick: use global keymap Austin recently introduced a new global keymap. This makes pick use this global map. In most cases pick needs to override this global map because it wants to close the message pane before doing the action. However, this documents the over-rides and makes it less likely that the pick bindings will get out of sync with the main bindings. --- contrib/notmuch-pick/notmuch-pick.el | 16 ++++++++++++---- 1 file changed, 12 insertions(+), 4 deletions(-) diff --git a/contrib/notmuch-pick/notmuch-pick.el b/contrib/notmuch-pick/notmuch-pick.el index 108a3f4f..2f20aa7d 100644 --- a/contrib/notmuch-pick/notmuch-pick.el +++ b/contrib/notmuch-pick/notmuch-pick.el @@ -213,6 +213,17 @@ FUNC." (defvar notmuch-pick-mode-map (let ((map (make-sparse-keymap))) + (set-keymap-parent map notmuch-common-keymap) + ;; The following override the global keymap. + ;; Override because we want to close message pane first. + (define-key map "?" (notmuch-pick-close-message-pane-and #'notmuch-help)) + ;; Override because we first close message pane and then close pick buffer. + (define-key map "q" 'notmuch-pick-quit) + ;; Override because we close message pane after the search query is entered. + (define-key map "s" 'notmuch-pick-to-search) + ;; Override because we want to close message pane first. + (define-key map "m" (notmuch-pick-close-message-pane-and #'notmuch-mua-new-mail)) + (define-key map [mouse-1] 'notmuch-pick-show-message) ;; these use notmuch-show functions directly (define-key map "|" 'notmuch-show-pipe-message) @@ -227,20 +238,16 @@ FUNC." (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 "m" (notmuch-pick-close-message-pane-and #'notmuch-mua-new-mail)) (define-key map "f" (notmuch-pick-close-message-pane-and #'notmuch-show-forward-message)) (define-key map "r" (notmuch-pick-close-message-pane-and #'notmuch-show-reply-sender)) (define-key map "R" (notmuch-pick-close-message-pane-and #'notmuch-show-reply)) (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 "A" 'notmuch-pick-archive-thread) (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) (define-key map "z" 'notmuch-pick-to-pick) (define-key map "n" 'notmuch-pick-next-matching-message) (define-key map "p" 'notmuch-pick-prev-matching-message) @@ -808,6 +815,7 @@ Complete list of currently available key bindings: (interactive) (kill-all-local-variables) + (setq notmuch-buffer-refresh-function #'notmuch-pick-refresh-view) (use-local-map notmuch-pick-mode-map) (setq major-mode 'notmuch-pick-mode mode-name "notmuch-pick")