]> git.notmuchmail.org Git - notmuch/commitdiff
emacs: save image redisplay data during non-lazy display
authorDavid Bremner <david@tethera.net>
Sun, 24 Sep 2023 09:51:51 +0000 (06:51 -0300)
committerDavid Bremner <david@tethera.net>
Sun, 1 Oct 2023 10:47:16 +0000 (07:47 -0300)
This data will eventually be used to redisplay hidden images. A
certain amount of refactoring is done here to avoid code
duplication.

emacs/notmuch-show.el

index 107ce1b8bd2716a815216d50e649cdd4cac3b9dc..54cf00c6392128c10f45499b78a02ee7525de0ff 100644 (file)
@@ -1109,14 +1109,18 @@ is t, hide the part initially and show the button."
                             (and deep button)
                             (and high button)
                             (and long button))))
-        (content-beg (point)))
+        (content-beg (point))
+        (part-data (list msg part mime-type nth depth button)))
     ;; Store the computed mime-type for later use (e.g. by attachment handlers).
     (plist-put part :computed-type mime-type)
-    (if show-part
-       (notmuch-show-insert-bodypart-internal msg part mime-type nth depth button)
+    (cond
+     (show-part
+      (apply #'notmuch-show-insert-bodypart-internal part-data)
+      (when (and button (string-match "^image/" mime-type))
+       (button-put button :notmuch-redisplay-data part-data)))
+     (t
       (when button
-       (button-put button :notmuch-lazy-part
-                   (list msg part mime-type nth depth button))))
+       (button-put button :notmuch-lazy-part part-data))))
     ;; Some of the body part handlers leave point somewhere up in the
     ;; part, so we make sure that we're down at the end.
     (goto-char (point-max))