emacs: add option to show-next-{, open-}message functions to pop out to parent buffer if at end

This will allow for keybindings that achieve a smoother message
processing flow by reducing the number of key presses needed for most
common operations.
This commit is contained in:
Jameson Graef Rollins 2012-01-24 16:06:20 -08:00 committed by David Bremner
parent 436c98a973
commit cdb51decdd

View file

@ -1390,14 +1390,19 @@ any effects from previous calls to
(with-current-notmuch-show-message (with-current-notmuch-show-message
(notmuch-mua-new-forward-message prompt-for-sender))) (notmuch-mua-new-forward-message prompt-for-sender)))
(defun notmuch-show-next-message () (defun notmuch-show-next-message (&optional pop-at-end)
"Show the next message." "Show the next message.
(interactive)
If a prefix argument is given and this is the last message in the
thread, navigate to the next thread in the parent search buffer."
(interactive "P")
(if (notmuch-show-goto-message-next) (if (notmuch-show-goto-message-next)
(progn (progn
(notmuch-show-mark-read) (notmuch-show-mark-read)
(notmuch-show-message-adjust)) (notmuch-show-message-adjust))
(goto-char (point-max)))) (if pop-at-end
(notmuch-show-next-thread)
(goto-char (point-max)))))
(defun notmuch-show-previous-message () (defun notmuch-show-previous-message ()
"Show the previous message." "Show the previous message."
@ -1406,9 +1411,13 @@ any effects from previous calls to
(notmuch-show-mark-read) (notmuch-show-mark-read)
(notmuch-show-message-adjust)) (notmuch-show-message-adjust))
(defun notmuch-show-next-open-message () (defun notmuch-show-next-open-message (&optional pop-at-end)
"Show the next message." "Show the next open message.
(interactive)
If a prefix argument is given and this is the last open message
in the thread, navigate to the next thread in the parent search
buffer."
(interactive "P")
(let (r) (let (r)
(while (and (setq r (notmuch-show-goto-message-next)) (while (and (setq r (notmuch-show-goto-message-next))
(not (notmuch-show-message-visible-p)))) (not (notmuch-show-message-visible-p))))
@ -1416,7 +1425,9 @@ any effects from previous calls to
(progn (progn
(notmuch-show-mark-read) (notmuch-show-mark-read)
(notmuch-show-message-adjust)) (notmuch-show-message-adjust))
(goto-char (point-max))))) (if pop-at-end
(notmuch-show-next-thread)
(goto-char (point-max))))))
(defun notmuch-show-previous-open-message () (defun notmuch-show-previous-open-message ()
"Show the previous message." "Show the previous message."