aboutsummaryrefslogtreecommitdiffhomepage
path: root/emacs
diff options
context:
space:
mode:
authorGravatar Austin Clements <amdragon@MIT.EDU>2013-05-29 21:13:44 -0400
committerGravatar David Bremner <bremner@debian.org>2013-05-31 22:00:44 -0300
commit6bbb91f8b64c20a491cc3501b625753f97e52882 (patch)
treed8f7d0723f0e6e2a3fe377480224cee85c12c046 /emacs
parent195aaa623261cc877889a27bc4804a37593656a6 (diff)
emacs: Retain text properties when toggling buttons
Previously, we lost any text properties applied to part buttons or wash buttons when they were toggled because `insert' directly copies the text properties of the string being inserted. Fix this by capturing the properties applied to the button beforehand and re-applying them after inserting the new text.
Diffstat (limited to 'emacs')
-rw-r--r--emacs/notmuch-show.el2
-rw-r--r--emacs/notmuch-wash.el2
2 files changed, 4 insertions, 0 deletions
diff --git a/emacs/notmuch-show.el b/emacs/notmuch-show.el
index b0a8d8ab..a080134f 100644
--- a/emacs/notmuch-show.el
+++ b/emacs/notmuch-show.el
@@ -559,10 +559,12 @@ message at DEPTH in the current thread."
(new-start (button-start button))
(button-label (button-get button :base-label))
(old-point (point))
+ (properties (text-properties-at (point)))
(inhibit-read-only t))
(overlay-put overlay 'invisible (not show))
(goto-char new-start)
(insert "[ " button-label (if show " ]" " (hidden) ]"))
+ (set-text-properties new-start (point) properties)
(let ((old-end (button-end button)))
(move-overlay button new-start (point))
(delete-region (point) old-end))
diff --git a/emacs/notmuch-wash.el b/emacs/notmuch-wash.el
index 8a68819c..8fe91e14 100644
--- a/emacs/notmuch-wash.el
+++ b/emacs/notmuch-wash.el
@@ -104,9 +104,11 @@ lower).")
(overlay (button-get cite-button 'overlay))
(button-label (notmuch-wash-button-label overlay))
(old-point (point))
+ (properties (text-properties-at (point)))
(inhibit-read-only t))
(goto-char new-start)
(insert button-label)
+ (set-text-properties new-start (point) properties)
(let ((old-end (button-end cite-button)))
(move-overlay cite-button new-start (point))
(delete-region (point) old-end))