emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[nongnu] elpa/popon 12ec6811d0: Don't let popon-visible-popons to change


From: ELPA Syncer
Subject: [nongnu] elpa/popon 12ec6811d0: Don't let popon-visible-popons to change due to side-effects
Date: Fri, 27 May 2022 07:58:51 -0400 (EDT)

branch: elpa/popon
commit 12ec6811d0ed6a22a94c72afa1aa8d55bf801823
Author: Akib Azmain Turja <akib@disroot.org>
Commit: Akib Azmain Turja <akib@disroot.org>

    Don't let popon-visible-popons to change due to side-effects
---
 popon.el | 23 +++++++++++------------
 1 file changed, 11 insertions(+), 12 deletions(-)

diff --git a/popon.el b/popon.el
index 7bef133754..881f69af10 100644
--- a/popon.el
+++ b/popon.el
@@ -409,29 +409,28 @@ When FORCE is non-nil, update all overlays."
           (when (or force
                     (not
                      (and
-                      (null (cl-set-difference
-                             popons
-                             (window-parameter window
-                                               'popon-visible-popons)))
-                      (null (cl-set-difference
-                             (window-parameter window
-                                               'popon-visible-popons)
-                             popons))
                       (eq (window-parameter window 'popon-window-start)
                           (window-start window))
                       (eq (window-parameter window 'popon-window-hscroll)
                           (window-hscroll window))
                       (eq (window-parameter window 'popon-window-buffer)
-                          (window-buffer window)))))
+                          (window-buffer window))
+                      (null (cl-set-exclusive-or
+                             popons
+                             (window-parameter window
+                                               'popon-visible-popons))))))
             (while (window-parameter window 'popon-overlays)
-              (delete-overlay (pop (window-parameter window
-                                                     'popon-overlays))))
+              (delete-overlay
+               (pop (window-parameter window 'popon-overlays))))
             (with-selected-window window
               (let* ((framebuffer (popon--make-framebuffer)))
                 (dolist (popon popons)
                   (popon--render popon framebuffer (window-hscroll)))
                 (popon--make-overlays framebuffer)))
-            (set-window-parameter window 'popon-visible-popons popons)
+            (set-window-parameter window 'popon-visible-popons
+                                  ;; We must copy it to prevent changes
+                                  ;; from any side-effect of anything else.
+                                  (copy-sequence popons))
             (set-window-parameter window 'popon-window-start
                                   (window-start window))
             (set-window-parameter window 'popon-window-hscroll



reply via email to

[Prev in Thread] Current Thread [Next in Thread]