branch: externals/dired-preview
commit e2da14de126e6ac281b5ef13aec6f74fadec2a43
Author: Protesilaos Stavrou <[email protected]>
Commit: Protesilaos Stavrou <[email protected]>
Fix scope of action to close preview upon buffer switch
Thanks to Bruno Boal for taking a look into this 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, 3 insertions(+), 5 deletions(-)
diff --git a/dired-preview.el b/dired-preview.el
index 3df6f85005..4ccaa827c9 100644
--- a/dired-preview.el
+++ b/dired-preview.el
@@ -232,7 +232,8 @@ conforms with `dired-preview--preview-p'."
(defun dired-preview--close-previews-outside-dired ()
"Call `dired-preview--close-previews' if BUFFER is not in Dired mode."
(when (not (eq major-mode 'dired-mode))
- (dired-preview--close-previews)))
+ (dired-preview--close-previews)
+ (remove-hook 'window-state-change-hook
#'dired-preview--close-previews-outside-dired)))
;; NOTE 2023-06-29: See the FIXME for `dired-preview-display-action-alist'.
(defun dired-preview-set-up-preview-window (window &rest _)
@@ -241,10 +242,7 @@ Use this as the `body-function' in the user option
`dired-preview-display-action-alist'."
(set-window-parameter window 'dired-preview-window :preview)
(with-current-buffer (window-buffer window)
- ;; FIXME 2023-06-30: This is the wrong scope, because it will not
- ;; be relevant when using `switch-to-buffer', `previous-buffer',
- ;; etc. Basically, it assumes we are in a Dired-only environment.
- (add-hook 'post-command-hook #'dired-preview--close-previews-outside-dired
nil :local)))
+ (add-hook 'window-state-change-hook
#'dired-preview--close-previews-outside-dired)))
(defun dired-preview--display-buffer (buffer)
"Call `display-buffer' for BUFFER.