branch: externals/dired-preview
commit 86e11c105b5b2bdd481f73aff5678d55411984df
Author: Protesilaos Stavrou <i...@protesilaos.com>
Commit: Protesilaos Stavrou <i...@protesilaos.com>

    Make dired-preview-display-file delete windows eagerly
    
    The previous behaviour would produce more than one preview windows in
    the case where (i) the Emacs frame displayed a preview per the
    function 'dired-preview-display-action-alist-dwim', (ii) the frame was
    resized, and (iii) a new preview was requested.
    
    Thanks to Bruno Boal for bringing this matter to my attention and for
    checking the workaround with me: <https://git.sr.ht/~bboal>.  This was
    done in a private channel and the information is shared with
    permission.
---
 dired-preview.el | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

diff --git a/dired-preview.el b/dired-preview.el
index 11040ab4c3..6c56d69144 100644
--- a/dired-preview.el
+++ b/dired-preview.el
@@ -261,12 +261,12 @@ Only do it with the current major mode is Dired."
 
 (defun dired-preview-display-file (file)
   "Display preview of FILE if appropriate."
+  (dired-preview--delete-windows)
   (when-let ((buffer (dired-preview--return-preview-buffer file)))
     (dired-preview--display-buffer buffer)
-    (if-let ((window (get-buffer-window buffer)))
-        (with-selected-window window
-          (set-window-parameter window 'dired-preview-window :preview))
-      (dired-preview--close-previews))))
+    (when-let ((window (get-buffer-window buffer)))
+      (with-selected-window window
+        (set-window-parameter window 'dired-preview-window :preview)))))
 
 (defun dired-preview--preview-p (file)
   "Return non-nil if FILE can be previewed."

Reply via email to