Skip to content

Commit d4d7788

Browse files
committed
Fixed overlay to invalid buffer.
1 parent bc9fd31 commit d4d7788

File tree

1 file changed

+21
-18
lines changed

1 file changed

+21
-18
lines changed

ivy-file-preview.el

Lines changed: 21 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,8 @@ If POS is nil then it won't moves."
202202
(let ((is-fild-p t))
203203
(cond ((file-exists-p fn) (find-file fn))
204204
((not ivy-file-preview-details) (setq is-fild-p nil))
205-
(t (switch-to-buffer fn)))
205+
((find-buffer-visiting fn) (switch-to-buffer fn))
206+
(t (setq is-fild-p nil)))
206207
(when is-fild-p
207208
(setq ivy-file-preview--selected-file fn)
208209
(cond ((consp pos)
@@ -213,7 +214,8 @@ If POS is nil then it won't moves."
213214
(goto-char (1+ pos))
214215
(recenter))
215216
((not pos) (goto-char (point-min)))
216-
(t (error "Invalid position details: %s" pos))))))
217+
(t (error "Invalid position details: %s" pos))))
218+
is-fild-p))
217219

218220
(defun ivy-file-preview--do-preview (fn pos)
219221
"Do file preview execution.
@@ -223,22 +225,23 @@ FN is the file path. POS can either be one of the following type:
223225
* nil : Just open it without moving the point."
224226
(save-selected-window
225227
(with-selected-window minibuffer-scroll-window
226-
(when (and ivy-file-preview-preview-only
227-
(not (find-buffer-visiting fn))
228-
(buffer-file-name))
229-
(push fn ivy-file-preview--preview-files))
230-
(unless (string= ivy-file-preview--selected-file fn)
231-
(ivy-file-preview--delete-overlays))
232-
(ivy-file-preview--open-file fn pos)
233-
(when (and ivy-file-preview-overlay-p ivy-file-preview-details)
234-
(if (and (string= ivy-file-preview--ivy-text ivy-text)
235-
ivy-file-preview--current-overlay)
236-
(ivy-file-preview--swap-current-overlay)
237-
(ivy-file-preview--safe-kill-timer ivy-file-preview--overlay-timer)
238-
(setq ivy-file-preview--overlay-timer
239-
(run-with-timer ivy-file-preview-overlay-delay-time nil
240-
#'ivy-file-preview--delay-make-overlays)))
241-
(setq ivy-file-preview--ivy-text ivy-text)))))
228+
(let (valid-file-p)
229+
(when (and ivy-file-preview-preview-only
230+
(not (find-buffer-visiting fn))
231+
(buffer-file-name))
232+
(push fn ivy-file-preview--preview-files))
233+
(unless (string= ivy-file-preview--selected-file fn)
234+
(ivy-file-preview--delete-overlays))
235+
(setq valid-file-p (ivy-file-preview--open-file fn pos))
236+
(when (and ivy-file-preview-overlay-p ivy-file-preview-details valid-file-p)
237+
(if (and (string= ivy-file-preview--ivy-text ivy-text)
238+
ivy-file-preview--current-overlay)
239+
(ivy-file-preview--swap-current-overlay)
240+
(ivy-file-preview--safe-kill-timer ivy-file-preview--overlay-timer)
241+
(setq ivy-file-preview--overlay-timer
242+
(run-with-timer ivy-file-preview-overlay-delay-time nil
243+
#'ivy-file-preview--delay-make-overlays)))
244+
(setq ivy-file-preview--ivy-text ivy-text))))))
242245

243246
(defun ivy-file-preview--after-select (&rest _)
244247
"Execution after selection."

0 commit comments

Comments
 (0)