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

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

[elpa] externals/dired-preview b610a6d3d2 1/4: Make dired-preview--delet


From: ELPA Syncer
Subject: [elpa] externals/dired-preview b610a6d3d2 1/4: Make dired-preview--delete-windows not delete windows with a buffer history
Date: Tue, 8 Apr 2025 06:58:30 -0400 (EDT)

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

    Make dired-preview--delete-windows not delete windows with a buffer history
    
    Those windows were probably displaying a buffer that the user wanted
    to keep. In that case, we want to just cleanse the window of all the
    parameters we added to it.
---
 dired-preview.el | 16 +++++++++-------
 1 file changed, 9 insertions(+), 7 deletions(-)

diff --git a/dired-preview.el b/dired-preview.el
index 6279990f44..a580550681 100644
--- a/dired-preview.el
+++ b/dired-preview.el
@@ -284,12 +284,14 @@ aforementioned user option."
   (seq-filter #'dired-preview--window-parameter-p (window-list)))
 
 (defun dired-preview--delete-windows ()
-  "Delete preview windows."
+  "Delete preview windows or clean them up if they should not be deleted."
   (dolist (window (dired-preview--get-windows))
-    (when (and (not (one-window-p))
+    (if (and (not (one-window-p))
                (window-live-p window)
-               (not (eq window (minibuffer-window))))
-      (delete-window window))))
+               (not (eq window (minibuffer-window)))
+               (not (window-prev-buffers)))
+        (delete-window window)
+      (dired-preview--clean-up-window window))))
 
 (defun dired-preview--file-ignored-p (file)
   "Return non-nil if FILE extension is among the ignored extensions.
@@ -318,9 +320,9 @@ See user option `dired-preview-ignored-extensions-regexp'."
     (set-window-parameter window 'dedicated value)
     (set-window-parameter window 'no-other-window value)))
 
-(defun dired-preview--clean-up-window ()
-  "Delete or clean up preview window."
-  (let* ((window (selected-window))
+(defun dired-preview--clean-up-window (&optional window)
+  "Delete or clean up preview window or WINDOW."
+  (let* ((window (or window (selected-window)))
          (buffer (window-buffer window)))
     (if (window-parameter window 'dired-preview-window)
         (dired-preview--delete-windows)



reply via email to

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