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

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

[nongnu] elpa/better-jumper b426ad84d7 35/48: Use a local window configu


From: ELPA Syncer
Subject: [nongnu] elpa/better-jumper b426ad84d7 35/48: Use a local window configuration hook
Date: Sun, 9 Jan 2022 22:58:11 -0500 (EST)

branch: elpa/better-jumper
commit b426ad84d799481a92965e15191fbe2a35243023
Author: sgleizes <stephane.gleizes@gmail.com>
Commit: sgleizes <stephane.gleizes@gmail.com>

    Use a local window configuration hook
    
    The fix is inspired from the similar implementation in `evil-jump`.
---
 better-jumper.el | 19 +++++++++----------
 1 file changed, 9 insertions(+), 10 deletions(-)

diff --git a/better-jumper.el b/better-jumper.el
index 1a97d1498f..1efd3641bb 100644
--- a/better-jumper.el
+++ b/better-jumper.el
@@ -450,18 +450,15 @@ Cleans up deleted windows and copies history to newly 
created windows."
              (not better-jumper-switching-perspectives))
     (let* ((window-list (window-list-1 nil nil t))
            (curr-window (selected-window))
+           (new-window (previous-window))
            (source-jump-struct (better-jumper--get-struct curr-window))
            (source-jump-list (better-jumper--get-struct-jump-list 
source-jump-struct)))
-      (unless (ring-empty-p source-jump-list))
-        (dolist (window window-list)
-          (let* ((target-jump-struct (better-jumper--get-struct window))
-                 (target-jump-list (better-jumper--get-struct-jump-list 
target-jump-struct)))
-            (when (ring-empty-p target-jump-list)
-              (setf (better-jumper-jump-list-struct-idx target-jump-struct) 
(better-jumper-jump-list-struct-idx source-jump-struct))
-              (setf (better-jumper-jump-list-struct-ring target-jump-struct) 
(ring-copy source-jump-list))))))))
-
-(add-hook 'window-configuration-change-hook 
#'better-jumper--window-configuration-hook)
-
+      (unless (ring-empty-p source-jump-list)
+        (let* ((target-jump-struct (better-jumper--get-struct new-window))
+               (target-jump-list (better-jumper--get-struct-jump-list 
target-jump-struct)))
+          (when (ring-empty-p target-jump-list)
+            (setf (better-jumper-jump-list-struct-idx target-jump-struct) 
(better-jumper-jump-list-struct-idx source-jump-struct))
+            (setf (better-jumper-jump-list-struct-ring target-jump-struct) 
(ring-copy source-jump-list))))))))
 
 ;;;;;;;;;;;;;;;;;;;
 ;;;   SAVEHIST  ;;;
@@ -534,11 +531,13 @@ Cleans up deleted windows and copies history to newly 
created windows."
   "Enable better-jumper-mode in the current buffer."
   (unless (or (minibufferp)
               (apply #'derived-mode-p better-jumper-disabled-modes))
+    (add-hook 'window-configuration-change-hook 
#'better-jumper--window-configuration-hook nil t)
     (better-jumper-local-mode +1)))
 
 ;;;###autoload
 (defun turn-off-better-jumper-mode ()
   "Disable `better-jumper-local-mode' in the current buffer."
+  (remove-hook 'window-configuration-change-hook 
#'better-jumper--window-configuration-hook t)
   (better-jumper-local-mode -1))
 
 ;;;###autoload



reply via email to

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