branch: externals/bufferlo
commit 81c871dd4c44b10f0179f73bd024d098d3d17a50
Author: Florian Rommel <m...@florommel.de>
Commit: Florian Rommel <m...@florommel.de>

    Fix bufferlo--clear-tab-bookmarks-by-name
    
    Only disassociate bookmark instead of closing he whole tab.
    Fixes 070be48 ("Cleanup bufferlo--clear-tab-bookmarks-by-name")
---
 bufferlo.el | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/bufferlo.el b/bufferlo.el
index c773b15410..46d8b0d3a9 100644
--- a/bufferlo.el
+++ b/bufferlo.el
@@ -2755,14 +2755,16 @@ This reuses the current tab even if
     (call-interactively #'bufferlo-bookmark-tab-load)))
 
 (defun bufferlo--clear-tab-bookmarks-by-name (bookmark-name)
-  "Clear BOOKMARK-NAME frame bookmarks across all frames and their tabs."
+  "Clear BOOKMARK-NAME tab bookmarks across all frames and their tabs."
   (dolist (frame (frame-list))
-    (let* ((filter (lambda (tab)
-                     (not (equal bookmark-name
-                                 (alist-get 'bufferlo-bookmark-tab-name 
tab)))))
-           (old-tabs (funcall tab-bar-tabs-function frame))
-           (new-tabs (seq-filter filter old-tabs)))
-      (tab-bar-tabs-set new-tabs frame))))
+    (tab-bar-tabs-set
+     (mapcar (lambda (tab)
+               (let ((tbm (alist-get 'bufferlo-bookmark-tab-name tab)))
+                 (if (and tbm (equal tbm bookmark-name))
+                     (assq-delete-all 'bufferlo-bookmark-tab-name tab)
+                   tab)))
+             (funcall tab-bar-tabs-function frame))
+     frame)))
 
 (defun bufferlo--clear-frame-bookmarks-by-name (bookmark-name)
   "Clear BOOKMARK-NAME frame bookmarks across all frames."

Reply via email to