branch: master
commit 3aed683d718d50d5a12bfcf3cc40c253cc41c726
Author: Oleh Krehel <[email protected]>
Commit: Oleh Krehel <[email protected]>
ivy.el (ivy--occur-press-buffer): Fix double pop-to-buffer issue
Fixes #1284
---
ivy.el | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/ivy.el b/ivy.el
index 1335912..51a4446 100644
--- a/ivy.el
+++ b/ivy.el
@@ -3948,22 +3948,29 @@ EVENT gives the mouse position."
(defvar ivy-occur-timer nil)
(defvar counsel-grep-last-line)
+(defun ivy--occur-press-update-window ()
+ (cl-case (ivy-state-caller ivy-occur-last)
+ ((swiper counsel-git-grep counsel-grep counsel-ag counsel-rg)
+ (let ((window (ivy-state-window ivy-occur-last)))
+ (when (or (null (window-live-p window))
+ (equal window (selected-window)))
+ (save-selected-window
+ (setf (ivy-state-window ivy-occur-last)
+ (display-buffer (ivy-state-buffer ivy-occur-last)
+ 'display-buffer-pop-up-window))))))
+
+ ((counsel-describe-function counsel-describe-variable)
+ (setf (ivy-state-window ivy-occur-last)
+ (selected-window))
+ (selected-window))))
+
(defun ivy-occur-press ()
"Execute action for the current candidate."
(interactive)
+ (ivy--occur-press-update-window)
(when (save-excursion
(beginning-of-line)
(looking-at "\\(?:./\\| \\)\\(.*\\)$"))
- (when (memq (ivy-state-caller ivy-occur-last)
- '(swiper counsel-git-grep counsel-grep counsel-ag counsel-rg
- counsel-describe-function counsel-describe-variable))
- (let ((window (ivy-state-window ivy-occur-last)))
- (when (or (null (window-live-p window))
- (equal window (selected-window)))
- (save-selected-window
- (setf (ivy-state-window ivy-occur-last)
- (display-buffer (ivy-state-buffer ivy-occur-last)
- 'display-buffer-pop-up-window))))))
(let* ((ivy-last ivy-occur-last)
(ivy-text (ivy-state-text ivy-last))
(str (buffer-substring