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

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

[elpa] externals/dired-preview b367550663 28/67: Rewrite how the timer i


From: ELPA Syncer
Subject: [elpa] externals/dired-preview b367550663 28/67: Rewrite how the timer is started
Date: Sat, 8 Jul 2023 15:57:53 -0400 (EDT)

branch: externals/dired-preview
commit b3675506632db37a51fec6bc4dcf31d5d6cf8d45
Author: Protesilaos Stavrou <info@protesilaos.com>
Commit: Protesilaos Stavrou <info@protesilaos.com>

    Rewrite how the timer is started
    
    This is the right place to put it.  It does not block Emacs while
    moving quickly between files.  The old design would eagerly do
    find-file on the file at point and only delay the 'display-buffer'
    part.
---
 dired-preview.el | 33 +++++++++++++++------------------
 1 file changed, 15 insertions(+), 18 deletions(-)

diff --git a/dired-preview.el b/dired-preview.el
index b59dcd2dd5..d276374d7e 100644
--- a/dired-preview.el
+++ b/dired-preview.el
@@ -263,38 +263,35 @@ Only do it with the current major mode is Dired."
      buffer
      dired-preview-display-action-alist)))
 
-(defvar dired-preview--timer nil
-  "Most recent timer object to display a preview.")
-
-(defun dired-preview--cancel-timer ()
-  "Cancel `dired-preview--timer' if it is a timer object."
-  (when (timerp dired-preview--timer)
-    (cancel-timer dired-preview--timer)))
-
-(defun dired-preview--display-buffer-with-delay (buffer)
-  "Display BUFFER with `dired-preview-delay'."
-  (dired-preview--cancel-timer)
-  (setq dired-preview--timer
-        (run-with-idle-timer
-         dired-preview-delay
-         nil #'dired-preview--display-buffer buffer)))
-
 (defun dired-preview-display-file ()
   "Display preview of `dired-file-name-at-point' if appropriate.
 Return buffer object of displayed buffer."
   (if-let* ((file (dired-file-name-at-point))
             (buffer (dired-preview--return-preview-buffer file)))
-        (dired-preview--display-buffer-with-delay buffer)
+        (dired-preview--display-buffer buffer)
     (dired-preview--close-previews)))
 
 (defvar dired-preview-trigger-commands
   '(dired-next-line dired-previous-line dired-mark dired-goto-file)
   "List of Dired commands that trigger a preview.")
 
+(defvar dired-preview--timer nil
+  "Most recent timer object to display a preview.")
+
+(defun dired-preview--cancel-timer ()
+  "Cancel `dired-preview--timer' if it is a timer object."
+  (when (timerp dired-preview--timer)
+    (cancel-timer dired-preview--timer)))
+
 (defun dired-preview-trigger ()
   "Trigger display of file at point after `dired-preview-trigger-commands'."
   (when (memq this-command dired-preview-trigger-commands)
-    (dired-preview-display-file)))
+    (dired-preview--cancel-timer)
+    (setq dired-preview--timer
+          (run-with-idle-timer
+           dired-preview-delay
+           nil
+           #'dired-preview-display-file))))
 
 (defun dired-preview-disable-preview ()
   "Disable Dired preview."



reply via email to

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