branch: externals/pulsar
commit 121b24dc194a4fd62dc33384ce01ba7decbba91a
Author: shipmints <shipmi...@gmail.com>
Commit: shipmints <shipmi...@gmail.com>

    Restore pulsar-pulse-on-window-change now via window-state-change-functions
    
    - restore pulsar-pulse-on-window-change
    - added window-state-change-functions hook; previous experiment used
    window-selection-change-functions
---
 pulsar.el | 23 ++++++++++++++++++++---
 1 file changed, 20 insertions(+), 3 deletions(-)

diff --git a/pulsar.el b/pulsar.el
index 8f00abaa7c..99d1641690 100644
--- a/pulsar.el
+++ b/pulsar.el
@@ -178,7 +178,15 @@ or `diff-hl-mode` buffers; e.g., \" *diff-hl-diff*\"."
   :package-version '(pulsar . "1.2.0")
   :group 'pulsar)
 
-(make-obsolete 'pulsar-pulse-on-window-change nil "0.5.0")
+(defcustom pulsar-pulse-on-window-change t
+  "When non-nil enable pulsing on every window change.
+This covers all commands or functions that affect the current
+window.  Users who prefer to trigger a pulse only after select
+functions (e.g. only after `other-window') are advised to set
+this variable to nil and update the `pulsar-pulse-functions'
+accordingly."
+  :type 'boolean
+  :group 'pulsar)
 
 (defcustom pulsar-face 'pulsar-generic
   "Face of the regular pulse line effect (`pulsar-pulse-line').
@@ -507,8 +515,11 @@ Also check `pulsar-global-mode'."
       (progn
         (when pulsar-resolve-pulse-function-aliases
           (pulsar-resolve-function-aliases))
-        (add-hook 'post-command-hook #'pulsar--post-command-pulse nil 'local))
-    (remove-hook 'post-command-hook #'pulsar--post-command-pulse 'local)))
+        (add-hook 'post-command-hook #'pulsar--post-command-pulse nil 'local)
+        (when pulsar-pulse-on-window-change
+          (add-hook 'window-state-change-functions 
#'pulsar--pulse-on-window-change nil 'local)))
+    (remove-hook 'post-command-hook #'pulsar--post-command-pulse 'local)
+    (remove-hook 'window-state-change-functions 
#'pulsar--pulse-on-window-change nil 'local)))
 
 (defun pulsar--on ()
   "Enable `pulsar-mode'."
@@ -521,6 +532,12 @@ Also check `pulsar-global-mode'."
 ;;;###autoload
 (define-globalized-minor-mode pulsar-global-mode pulsar-mode pulsar--on)
 
+(defun pulsar--pulse-on-window-change (&rest _)
+  "Run `pulsar-pulse-line' on window change."
+  (when (and pulsar-pulse-on-window-change
+             (or pulsar-mode pulsar-global-mode))
+    (pulsar-pulse-line)))
+
 (defun pulsar--post-command-pulse ()
   "Run `pulsar-pulse-line' or pulse the region for registered functions."
   (when (or pulsar-mode pulsar-global-mode)

Reply via email to