branch: externals/bufferlo
commit 3e485f5633149bb58bffb9371c428ace8b9e9478
Author: shipmints <[email protected]>
Commit: shipmints <[email protected]>
bufferlo-bookmarks-load skip already loaded bookmarks
If one loads a session that contains bookmarks that are also indicated
to load, the bookmarks will be loaded preferentially by the session.
---
bufferlo.el | 29 ++++++++++++++++-------------
1 file changed, 16 insertions(+), 13 deletions(-)
diff --git a/bufferlo.el b/bufferlo.el
index bf2194911c..04c38be1e3 100644
--- a/bufferlo.el
+++ b/bufferlo.el
@@ -3208,28 +3208,31 @@ current or new frame according to
(current-prefix-arg nil))
;; load session bookmarks
(dolist (bookmark-name (bufferlo--bookmark-get-names
#'bufferlo--bookmark-session-handler))
- (when (run-hook-with-args-until-success
'bufferlo-bookmarks-load-predicate-functions bookmark-name)
- (if (bufferlo--bookmark-jump bookmark-name)
- (push bookmark-name bookmarks-loaded)
- (push bookmark-name bookmarks-failed))))
+ (unless (assoc bookmark-name bufferlo--active-sessions)
+ (when (run-hook-with-args-until-success
'bufferlo-bookmarks-load-predicate-functions bookmark-name)
+ (if (bufferlo--bookmark-jump bookmark-name)
+ (push bookmark-name bookmarks-loaded)
+ (push bookmark-name bookmarks-failed)))))
;; load tab bookmarks, making a new frame if required
(let ((bufferlo-bookmark-tab-replace-policy 'replace) ; we handle making
tabs in this loop
(tab-bar-new-tab-choice t)
(new-tab-frame nil))
(dolist (bookmark-name (bufferlo--bookmark-get-names
#'bufferlo--bookmark-tab-handler))
+ (unless (assoc bookmark-name (bufferlo--active-bookmarks))
+ (when (run-hook-with-args-until-success
'bufferlo-bookmarks-load-predicate-functions bookmark-name)
+ (if (and bufferlo-bookmarks-load-tabs-make-frame (not
new-tab-frame))
+ (select-frame (setq new-tab-frame (make-frame)))
+ (tab-bar-new-tab-to))
+ (if (bufferlo--bookmark-jump bookmark-name)
+ (push bookmark-name bookmarks-loaded)
+ (push bookmark-name bookmarks-failed))))))
+ ;; load frame bookmarks
+ (dolist (bookmark-name (bufferlo--bookmark-get-names
#'bufferlo--bookmark-frame-handler))
+ (unless (assoc bookmark-name (bufferlo--active-bookmarks))
(when (run-hook-with-args-until-success
'bufferlo-bookmarks-load-predicate-functions bookmark-name)
- (if (and bufferlo-bookmarks-load-tabs-make-frame (not new-tab-frame))
- (select-frame (setq new-tab-frame (make-frame)))
- (tab-bar-new-tab-to))
(if (bufferlo--bookmark-jump bookmark-name)
(push bookmark-name bookmarks-loaded)
(push bookmark-name bookmarks-failed)))))
- ;; load frame bookmarks
- (dolist (bookmark-name (bufferlo--bookmark-get-names
#'bufferlo--bookmark-frame-handler))
- (when (run-hook-with-args-until-success
'bufferlo-bookmarks-load-predicate-functions bookmark-name)
- (if (bufferlo--bookmark-jump bookmark-name)
- (push bookmark-name bookmarks-loaded)
- (push bookmark-name bookmarks-failed))))
(select-frame orig-frame)
(when bookmarks-loaded
(message "Loaded bufferlo bookmarks: %s, in %.2f seconds%s"