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

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

[elpa] externals/beardbolt 7c735240b0 192/323: Clean up buffer overlays


From: ELPA Syncer
Subject: [elpa] externals/beardbolt 7c735240b0 192/323: Clean up buffer overlays explicitly on output buffer kill
Date: Thu, 9 Mar 2023 10:58:30 -0500 (EST)

branch: externals/beardbolt
commit 7c735240b0f7685457e4e77470b7562e7790803f
Author: Jay Kamat <jaygkamat@gmail.com>
Commit: Jay Kamat <jaygkamat@gmail.com>

    Clean up buffer overlays explicitly on output buffer kill
---
 rmsbolt.el | 18 ++++++++++++++----
 1 file changed, 14 insertions(+), 4 deletions(-)

diff --git a/rmsbolt.el b/rmsbolt.el
index b3e54006ea..9df5dc4984 100644
--- a/rmsbolt.el
+++ b/rmsbolt.el
@@ -1648,11 +1648,20 @@ Are you running two compilations at the same time?"))
                   (rmsbolt--goto-line line-scroll)
                   ;; If we scrolled, recenter
                   (recenter))))))
-      (mapc #'delete-overlay rmsbolt-overlays)
-      (setq rmsbolt-overlays nil))
+      (rmsbolt--cleanup-overlays))
     ;; If not in rmsbolt-mode, don't do anything
     ))
 
+(defun rmsbolt--cleanup-overlays ()
+  "Clean up overlays, assuming they are no longer needed."
+  (mapc #'delete-overlay rmsbolt-overlays)
+  (setq rmsbolt-overlays nil))
+
+(defun rmsbolt--kill-buffer-cleanup ()
+  "A simple hook to listen for the output buffer close so we can clean up 
overlays."
+  (when (eq (current-buffer) (get-buffer rmsbolt-output-buffer))
+    (rmsbolt--cleanup-overlays)))
+
 (defun rmsbolt-hot-recompile ()
   "Recompile source buffer if we need to."
   (when-let ((should-hot-compile rmsbolt-mode)
@@ -1698,7 +1707,8 @@ This mode is enabled both in modes to be compiled and 
output buffers."
     (unless rmsbolt--idle-timer
       (setq rmsbolt--idle-timer (run-with-idle-timer
                                  rmsbolt-overlay-delay t
-                                 #'rmsbolt-move-overlays)))
+                                 #'rmsbolt-move-overlays))
+      (add-hook 'kill-buffer-hook #'rmsbolt--kill-buffer-cleanup))
     (unless (or rmsbolt--compile-idle-timer
                 (not rmsbolt-automatic-recompile))
       (setq rmsbolt--compile-idle-timer (run-with-idle-timer
@@ -1706,7 +1716,7 @@ This mode is enabled both in modes to be compiled and 
output buffers."
                                          #'rmsbolt-hot-recompile)))
     (rmsbolt--gen-temp))
    (t ;; Cleanup
-    (mapc #'delete-overlay rmsbolt-overlays))))
+    (rmsbolt--cleanup-overlays))))
 
 (provide 'rmsbolt)
 



reply via email to

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