]> git.cworth.org Git - obsolete/notmuch-old/commitdiff
emacs: Correct message/header/citation/signature hiding
authorDavid Edmondson <dme@dme.org>
Mon, 26 Apr 2010 10:17:11 +0000 (11:17 +0100)
committerCarl Worth <cworth@cworth.org>
Mon, 26 Apr 2010 15:07:17 +0000 (08:07 -0700)
Set `buffer-invisibility-spec' to `nil' (a list) if it is just `t'
before inserting any body parts, otherwise removing items from
`buffer-invisibility-spec' (which is what
`notmuch-show-headers-visible' and `notmuch-show-message-visible' do)
is a no-op and has no effect. This caused threads with only matching
messages to have those messages hidden initially because
`buffer-invisibility-spec' stayed `t'.

emacs/notmuch-show.el

index aa8041c2cbcdad5a6c24fdf54281a6d7495f202c..814ab65183c5f6658b3988d5772d424d888a3193 100644 (file)
@@ -399,6 +399,22 @@ current buffer, if possible."
        (headers-invis-spec (notmuch-show-make-symbol "header"))
        (message-invis-spec (notmuch-show-make-symbol "message")))
 
+    ;; Set `buffer-invisibility-spec' to `nil' (a list), otherwise
+    ;; removing items from `buffer-invisibility-spec' (which is what
+    ;; `notmuch-show-headers-visible' and
+    ;; `notmuch-show-message-visible' do) is a no-op and has no
+    ;; effect. This caused threads with only matching messages to have
+    ;; those messages hidden initially because
+    ;; `buffer-invisibility-spec' stayed `t'.
+    ;;
+    ;; This needs to be set here (rather than just above the call to
+    ;; `notmuch-show-headers-visible') because some of the part
+    ;; rendering or body washing functions
+    ;; (e.g. `notmuch-wash-text/plain-citations') manipulate
+    ;; `buffer-invisibility-spec').
+    (when (eq buffer-invisibility-spec t)
+      (setq buffer-invisibility-spec nil))
+
     (setq message-start (point-marker))
 
     (notmuch-show-insert-headerline headers