Consensus seems to be that people prefer that refreshing show buffers
retains state by default, rather than resetting it by default. This
turns out to be the case in the code, as well. In fact, there's even
a test for this that's been marked broken for several months, which
this patch finally gets to mark as fixed.
:notmuch-from from)
(insert "\n")))
:notmuch-from from)
(insert "\n")))
-(declare-function notmuch-show-refresh-view "notmuch-show" (&optional retain-state))
+(declare-function notmuch-show-refresh-view "notmuch-show" (&optional reset-state))
(defun notmuch-crypto-sigstatus-good-callback (button)
(let* ((sigstatus (button-get button :notmuch-sigstatus))
(defun notmuch-crypto-sigstatus-good-callback (button)
(let* ((sigstatus (button-get button :notmuch-sigstatus))
(insert "\n")
(call-process "gpg" nil t t "--list-keys" keyid))
(recenter -1))
(insert "\n")
(call-process "gpg" nil t t "--list-keys" keyid))
(recenter -1))
- (notmuch-show-refresh-view)))
+ (notmuch-show-refresh-view t)))
(defun notmuch-crypto-insert-encstatus-button (encstatus)
(let* ((status (plist-get encstatus :status))
(defun notmuch-crypto-insert-encstatus-button (encstatus)
(let* ((status (plist-get encstatus :status))
(message (if notmuch-show-process-crypto
"Processing cryptographic MIME parts."
"Not processing cryptographic MIME parts."))
(message (if notmuch-show-process-crypto
"Processing cryptographic MIME parts."
"Not processing cryptographic MIME parts."))
- (notmuch-show-refresh-view t))
+ (notmuch-show-refresh-view))
(defun notmuch-show-toggle-elide-non-matching ()
"Toggle the display of non-matching messages."
(defun notmuch-show-toggle-elide-non-matching ()
"Toggle the display of non-matching messages."
(message (if notmuch-show-elide-non-matching-messages
"Showing matching messages only."
"Showing all messages."))
(message (if notmuch-show-elide-non-matching-messages
"Showing matching messages only."
"Showing all messages."))
- (notmuch-show-refresh-view t))
+ (notmuch-show-refresh-view))
(defun notmuch-show-toggle-thread-indentation ()
"Toggle the indentation of threads."
(defun notmuch-show-toggle-thread-indentation ()
"Toggle the indentation of threads."
(message (if notmuch-show-indent-content
"Content is indented."
"Content is not indented."))
(message (if notmuch-show-indent-content
"Content is indented."
"Content is not indented."))
- (notmuch-show-refresh-view t))
+ (notmuch-show-refresh-view))
(defun notmuch-show-insert-tree (tree depth)
"Insert the message tree TREE at depth DEPTH in the current thread."
(defun notmuch-show-insert-tree (tree depth)
"Insert the message tree TREE at depth DEPTH in the current thread."
(message "Previously current message not found."))
(notmuch-show-message-adjust)))
(message "Previously current message not found."))
(notmuch-show-message-adjust)))
-(defun notmuch-show-refresh-view (&optional retain-state)
+(defun notmuch-show-refresh-view (&optional reset-state)
"Refresh the current view.
Refreshes the current view, observing changes in display
"Refresh the current view.
Refreshes the current view, observing changes in display
-preferences. If RETAIN-STATE is non-nil then the state of the
-buffer is stored and re-applied after the refresh."
+preferences. If invoked with a prefix argument (or RESET-STATE is
+non-nil) then the state of the buffer (open/closed messages) is
+reset based on the original query."
(interactive "P")
(let ((inhibit-read-only t)
(interactive "P")
(let ((inhibit-read-only t)
- state)
- (if retain-state
- (setq state (notmuch-show-capture-state)))
+ (state (unless reset-state
+ (notmuch-show-capture-state))))
(erase-buffer)
(notmuch-show-build-buffer)
(if state
(erase-buffer)
(notmuch-show-build-buffer)
(if state
test_expect_equal_file OUTPUT EXPECTED
test_begin_subtest "Refresh modified show buffer"
test_expect_equal_file OUTPUT EXPECTED
test_begin_subtest "Refresh modified show buffer"
-test_subtest_known_broken
test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae@mail.gmail.com")
(notmuch-show-toggle-message)
(notmuch-show-next-message)
test_emacs '(notmuch-show "id:f35dbb950911171438k5df6eb56k77b6c0944e2e79ae@mail.gmail.com")
(notmuch-show-toggle-message)
(notmuch-show-next-message)