X-Git-Url: https://git.notmuchmail.org/git?p=notmuch;a=blobdiff_plain;f=notmuch.el;h=a7e334e45ef7106855c34901151c28c927320e60;hp=c00d359598a85b05d4b699c8e7079c0284d810a9;hb=6be03c1761b0b586f7b52bb394131e34fe7534be;hpb=2d507c9c6db9188b3574f7d50144a918d26b3bb1 diff --git a/notmuch.el b/notmuch.el index c00d3595..a7e334e4 100644 --- a/notmuch.el +++ b/notmuch.el @@ -420,11 +420,20 @@ Before moving, also remove the \"unread\" tag from the current message." "Refresh the current view. Kills the current buffer and runs a new search with the same -query string as the current search." +query string as the current search. If the current thread is in +the new search results, then point will be placed on the same +thread. Otherwise, point will be moved to attempt to be in the +same relative position within the new buffer." (interactive) - (let ((query notmuch-search-query-string)) + (let ((here (point)) + (thread (notmuch-search-find-thread-id)) + (query notmuch-search-query-string)) (kill-this-buffer) - (notmuch-search query))) + (notmuch-search query) + (goto-char (point-min)) + (if (re-search-forward (concat "^" thread) nil t) + (beginning-of-line) + (goto-char here)))) (defun notmuch-search-filter (query) "Run \"notmuch search\" to refine the current search results.