[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/bufferlo 385a726715 071/192: Correct bufferlo--bookmark
From: |
ELPA Syncer |
Subject: |
[elpa] externals/bufferlo 385a726715 071/192: Correct bufferlo--bookmark-frame-handler frame selection |
Date: |
Sat, 19 Apr 2025 15:58:05 -0400 (EDT) |
branch: externals/bufferlo
commit 385a726715a8a47b0fe5e85827c9dd39fff0f965
Author: shipmints <shipmints@gmail.com>
Commit: shipmints <shipmints@gmail.com>
Correct bufferlo--bookmark-frame-handler frame selection
Restored frame must be selected and raised outside the context of
with-selected-frame which restores the frame from before its
invocation.
---
bufferlo.el | 86 +++++++++++++++++++++++++++++++------------------------------
1 file changed, 44 insertions(+), 42 deletions(-)
diff --git a/bufferlo.el b/bufferlo.el
index 2205365d76..fc9ce80b79 100644
--- a/bufferlo.el
+++ b/bufferlo.el
@@ -2213,48 +2213,50 @@ the message after successfully restoring the bookmark."
;; Do the real work with the target frame selected (current or newly
created)
;; NOTE: No :abort throws after this point
- (with-selected-frame (if new-frame-p
- (with-temp-buffer (make-frame))
- (selected-frame))
- ;; Clear existing tabs unless merging
- (unless (eq load-policy 'merge)
- (if (>= emacs-major-version 28)
- (tab-bar-tabs-set nil)
- (set-frame-parameter nil 'tabs nil)))
-
- ;; Load tabs
- (let ((first (if (eq load-policy 'merge) nil t))
- (tab-bar-new-tab-choice t))
- (mapc
- (lambda (tbm)
- (if first
- (setq first nil)
- (tab-bar-new-tab-to))
- (bufferlo--bookmark-tab-handler tbm t 'embedded-tab)
- (when-let* ((tab-name (alist-get 'tab-name tbm)))
- (tab-bar-rename-tab tab-name)))
- (alist-get 'tabs bookmark)))
- (tab-bar-select-tab (alist-get 'current bookmark))
-
- ;; Handle duplicate frame bookmark
- (pcase duplicate-policy
- ;; Do nothing for 'allow or nil
- ('clear
- (setq fbm nil))
- ('clear-warn
- (setq fbm nil)
- (funcall msg-append "cleared frame bookmark")))
-
- (set-frame-parameter nil 'bufferlo-bookmark-frame-name fbm)
-
- ;; Restore geometry
- (when (and new-frame-p
- (display-graphic-p)
- (eq bufferlo-bookmark-frame-load-make-frame
'restore-geometry))
- (when-let* ((fg (alist-get 'bufferlo--frame-geometry bookmark)))
- (bufferlo--set-frame-geometry fg)))
-
- (raise-frame))
+ (let ((frame (if new-frame-p
+ (with-temp-buffer (make-frame))
+ (selected-frame))))
+ (with-selected-frame frame
+ ;; Clear existing tabs unless merging
+ (unless (eq load-policy 'merge)
+ (if (>= emacs-major-version 28)
+ (tab-bar-tabs-set nil)
+ (set-frame-parameter nil 'tabs nil)))
+
+ ;; Load tabs
+ (let ((first (if (eq load-policy 'merge) nil t))
+ (tab-bar-new-tab-choice t))
+ (mapc
+ (lambda (tbm)
+ (if first
+ (setq first nil)
+ (tab-bar-new-tab-to))
+ (bufferlo--bookmark-tab-handler tbm t 'embedded-tab)
+ (when-let* ((tab-name (alist-get 'tab-name tbm)))
+ (tab-bar-rename-tab tab-name)))
+ (alist-get 'tabs bookmark)))
+ (tab-bar-select-tab (alist-get 'current bookmark))
+
+ ;; Handle duplicate frame bookmark
+ (pcase duplicate-policy
+ ;; Do nothing for 'allow or nil
+ ('clear
+ (setq fbm nil))
+ ('clear-warn
+ (setq fbm nil)
+ (funcall msg-append "cleared frame bookmark")))
+
+ (set-frame-parameter nil 'bufferlo-bookmark-frame-name fbm)
+
+ ;; Restore geometry
+ (when (and new-frame-p
+ (display-graphic-p)
+ (eq bufferlo-bookmark-frame-load-make-frame
'restore-geometry))
+ (when-let* ((fg (alist-get 'bufferlo--frame-geometry bookmark)))
+ (bufferlo--set-frame-geometry fg))))
+
+ ;; Select and raise the restored frame outside the context of
with-selected-frame
+ (select-frame-set-input-focus frame))
;; Log message
(unless (or no-message bufferlo--bookmark-handler-no-message)
- [elpa] externals/bufferlo b56ca70306 026/192: Add user-emacs-dir/bufferlo-no-load file to inhibit bufferlo bookmark loading., (continued)
- [elpa] externals/bufferlo b56ca70306 026/192: Add user-emacs-dir/bufferlo-no-load file to inhibit bufferlo bookmark loading., ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 369d48eb5a 032/192: bufferlo-kill-buffers-prompt for bufferlo-kill-buffers bufferlo-kill-orphan-buffers, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo a54a0c9a55 042/192: Add bufferlo--bookmark-handler-no-message for binding around internal calls. Rename internal functions . Hanging parens., ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo bbd440361e 038/192: More refinements to batch bookmark loading., ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 1011fa5017 049/192: Add bufferlo-session-save-current-interactive, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 6435cf2209 056/192: Automatic bookmark saving on frame deletion and closing tabs, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 6a73c7b27e 040/192: Enhance load at startup to wait until Emacs achieves idle after startup completes., ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 8888e95762 045/192: Added option to restore frame bookmark geometry., ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 4eaab7e03f 062/192: Streamline frame & tab bookmark loading and saving, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 070be48158 058/192: Cleanup bufferlo--clear-tab-bookmarks-by-name, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 385a726715 071/192: Correct bufferlo--bookmark-frame-handler frame selection,
ELPA Syncer <=
- [elpa] externals/bufferlo 3e485f5633 073/192: bufferlo-bookmarks-load skip already loaded bookmarks, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 492c725562 077/192: Tweak to frame geometry restore to sit-for with a redisplay., ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo c2d618e5d9 076/192: Better frameset-restore with the presence of fullscreen in default-frame-alist, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo ab4e4149f9 085/192: Documentation update, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 0063b3e17d 084/192: Clamp frame size restored from a larger display, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 0d95a824f9 091/192: Proper duplicate detection when loading bookmark sets, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo 05c267ffbd 095/192: Revert to manual steps in bufferlo--set-frame-geometry, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo d15a00222a 094/192: bufferlo--set-frame-geometry pixelwise tweak, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo c884a0c389 104/192: Add bufferlo--tab-bar-undo-close-tab-advice, ELPA Syncer, 2025/04/19
- [elpa] externals/bufferlo d0c7a52f21 107/192: Add bufferlo-frame-sleep-for to the configuration example, ELPA Syncer, 2025/04/19