mirror of
https://git.notmuchmail.org/git/notmuch
synced 2024-11-22 02:48:08 +01:00
emacs: show: recognize the exclude flag.
Show mode will recognize the exclude flag by not opening excluding messages by default, and will start at the first matching non-excluded message. If there are no matching non-excluded messages it will go to the first matching (necessarily excluded) message.
This commit is contained in:
parent
7a1beb9e7c
commit
119a42571e
1 changed files with 27 additions and 9 deletions
|
@ -981,7 +981,8 @@ current buffer, if possible."
|
||||||
|
|
||||||
;; Message visibility depends on whether it matched the search
|
;; Message visibility depends on whether it matched the search
|
||||||
;; criteria.
|
;; criteria.
|
||||||
(notmuch-show-message-visible msg (plist-get msg :match))))
|
(notmuch-show-message-visible msg (and (plist-get msg :match)
|
||||||
|
(not (plist-get msg :excluded))))))
|
||||||
|
|
||||||
(defun notmuch-show-toggle-process-crypto ()
|
(defun notmuch-show-toggle-process-crypto ()
|
||||||
"Toggle the processing of cryptographic MIME parts."
|
"Toggle the processing of cryptographic MIME parts."
|
||||||
|
@ -1081,11 +1082,7 @@ function is used."
|
||||||
notmuch-show-parent-buffer parent-buffer
|
notmuch-show-parent-buffer parent-buffer
|
||||||
notmuch-show-query-context query-context)
|
notmuch-show-query-context query-context)
|
||||||
(notmuch-show-build-buffer)
|
(notmuch-show-build-buffer)
|
||||||
|
(notmuch-show-goto-first-wanted-message)))
|
||||||
;; Move to the first open message and mark it read
|
|
||||||
(if (notmuch-show-message-visible-p)
|
|
||||||
(notmuch-show-mark-read)
|
|
||||||
(notmuch-show-next-open-message))))
|
|
||||||
|
|
||||||
(defun notmuch-show-build-buffer ()
|
(defun notmuch-show-build-buffer ()
|
||||||
(let ((inhibit-read-only t))
|
(let ((inhibit-read-only t))
|
||||||
|
@ -1167,9 +1164,7 @@ reset based on the original query."
|
||||||
(notmuch-show-apply-state state)
|
(notmuch-show-apply-state state)
|
||||||
;; We're resetting state, so navigate to the first open message
|
;; We're resetting state, so navigate to the first open message
|
||||||
;; and mark it read, just like opening a new show buffer.
|
;; and mark it read, just like opening a new show buffer.
|
||||||
(if (notmuch-show-message-visible-p)
|
(notmuch-show-goto-first-wanted-message))))
|
||||||
(notmuch-show-mark-read)
|
|
||||||
(notmuch-show-next-open-message)))))
|
|
||||||
|
|
||||||
(defvar notmuch-show-stash-map
|
(defvar notmuch-show-stash-map
|
||||||
(let ((map (make-sparse-keymap)))
|
(let ((map (make-sparse-keymap)))
|
||||||
|
@ -1601,6 +1596,29 @@ to show, nil otherwise."
|
||||||
(goto-char (point-max))))
|
(goto-char (point-max))))
|
||||||
r))
|
r))
|
||||||
|
|
||||||
|
(defun notmuch-show-next-matching-message ()
|
||||||
|
"Show the next matching message."
|
||||||
|
(interactive)
|
||||||
|
(let (r)
|
||||||
|
(while (and (setq r (notmuch-show-goto-message-next))
|
||||||
|
(not (notmuch-show-get-prop :match))))
|
||||||
|
(if r
|
||||||
|
(progn
|
||||||
|
(notmuch-show-mark-read)
|
||||||
|
(notmuch-show-message-adjust))
|
||||||
|
(goto-char (point-max)))))
|
||||||
|
|
||||||
|
(defun notmuch-show-goto-first-wanted-message ()
|
||||||
|
"Move to the first open message and mark it read"
|
||||||
|
(goto-char (point-min))
|
||||||
|
(if (notmuch-show-message-visible-p)
|
||||||
|
(notmuch-show-mark-read)
|
||||||
|
(notmuch-show-next-open-message))
|
||||||
|
(when (eobp)
|
||||||
|
(goto-char (point-min))
|
||||||
|
(unless (notmuch-show-get-prop :match)
|
||||||
|
(notmuch-show-next-matching-message))))
|
||||||
|
|
||||||
(defun notmuch-show-previous-open-message ()
|
(defun notmuch-show-previous-open-message ()
|
||||||
"Show the previous open message."
|
"Show the previous open message."
|
||||||
(interactive)
|
(interactive)
|
||||||
|
|
Loading…
Reference in a new issue