[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)