Subject: 27.0.60; lisp/cedet/pulse.el destroys pulsed overlay priorities

From: João Távora <[email-masked]>
Date: Fri, 28 Feb 2020 13:38:17 +0000

Hi,

The bug is easy to reproduce, just make an overlay somewhere, "pulse" it
with pulse-momentary-highlight-overlay, and watch its previous 'priorty
value get destroyed.  The patch attached inline fixes the issue, it
restores the priority just like it does the face.  I'll push it as soon
as there is approval, or in a few days if there are no objections.

João

Subject: [PATCH] Have pulse.el save and restore overlay priorities

* lisp/cedet/pulse.el (pulse-momentary-highlight-overlay): Save
overlay priority.
(pulse-momentary-unhighlight): Restore.
---
 lisp/cedet/pulse.el | 2 ++
 1 file changed, 2 insertions(+)

diff --git a/lisp/cedet/pulse.el b/lisp/cedet/pulse.el
index 5713a7b0d1..16243e16b4 100644
--- a/lisp/cedet/pulse.el
+++ b/lisp/cedet/pulse.el
@@ -181,6 +181,7 @@ pulse-momentary-highlight-overlay
   (overlay-put o 'original-face (overlay-get o 'face))
   ;; Make this overlay take priority over the `transient-mark-mode'
   ;; overlay.
+  (overlay-put o 'original-priority (overlay-get o 'priority))
   (overlay-put o 'priority 1)
   (setq pulse-momentary-overlay o)
   (if (eq pulse-flag 'never)
@@ -214,6 +215,7 @@ pulse-momentary-unhighlight
     (let ((ol pulse-momentary-overlay))
       (overlay-put ol 'face (overlay-get ol 'original-face))
       (overlay-put ol 'original-face nil)
+      (overlay-put ol 'priority (overlay-get ol 'original-priority))
       ;; Clear the overlay if it needs deleting.
       (when (overlay-get ol 'pulse-delete) (delete-overlay ol)))

-- 
2.20.1