branch: externals/dired-preview commit e2da14de126e6ac281b5ef13aec6f74fadec2a43 Author: Protesilaos Stavrou <i...@protesilaos.com> Commit: Protesilaos Stavrou <i...@protesilaos.com>
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.