[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/vertico-posframe 21f894b 05/10: Add vertico-posframe-la
From: |
ELPA Syncer |
Subject: |
[elpa] externals/vertico-posframe 21f894b 05/10: Add vertico-posframe-last-window and use it. |
Date: |
Wed, 27 Oct 2021 14:58:42 -0400 (EDT) |
branch: externals/vertico-posframe
commit 21f894b38daea0b8fbf28e066f4067ea04dc69e9
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>
Add vertico-posframe-last-window and use it.
* vertico-posframe.el (vertico-posframe--last-window): New function.
(vertico-posframe--display): Use vertico-posframe-last-window.
(vertico-posframe-last-window): New function.
(vertico-posframe--advice): New advice function.
(vertico-posframe-mode): deal with vertico-posframe--advice.
---
vertico-posframe.el | 23 ++++++++++++++++++++---
1 file changed, 20 insertions(+), 3 deletions(-)
diff --git a/vertico-posframe.el b/vertico-posframe.el
index ea724ab..f80453e 100644
--- a/vertico-posframe.el
+++ b/vertico-posframe.el
@@ -124,6 +124,8 @@ When 0, no border is showed."
:group 'vertico-posframe)
(defvar vertico-posframe--buffer " *vertico-posframe--buffer*")
+(defvar vertico-posframe--last-window nil)
+
(defvar vertico-posframe--overlay)
;; Fix warn
@@ -179,7 +181,7 @@ When 0, no border is showed."
content
(propertize " " 'face 'vertico-posframe-cursor)
"\n" (string-join lines)))
- (with-selected-window (next-window)
+ (with-selected-window (vertico-posframe-last-window)
(apply #'posframe-show
vertico-posframe--buffer
:font vertico-posframe-font
@@ -192,7 +194,16 @@ When 0, no border is showed."
:refposhandler vertico-posframe-refposhandler
:hidehandler #'vertico-posframe-hidehandler
:lines-truncate t
- (funcall vertico-posframe-size-function)))))
+ (funcall vertico-posframe-size-function))
+ (setq vertico-posframe--last-window nil))))
+
+(defun vertico-posframe-last-window ()
+ "Get the last actived window before active minibuffer."
+ (let ((window vertico-posframe--last-window))
+ (or (if (window-live-p window)
+ window
+ (next-window))
+ (selected-window))))
(defun vertico-posframe--select (_)
"Ensure that cursor is only shown if minibuffer is selected."
@@ -218,6 +229,10 @@ When 0, no border is showed."
(overlay-put vertico-posframe--overlay 'priority 1000)
(overlay-put vertico-posframe--overlay 'before-string "\n"))
+(defun vertico-posframe--advice (orig &rest args)
+ "Advice function of `vertico--advice'."
+ (setq vertico-posframe--last-window (selected-window)))
+
;;;###autoload
(define-minor-mode vertico-posframe-mode
"Display Vertico in posframe instead of the minibuffer."
@@ -225,10 +240,12 @@ When 0, no border is showed."
(cond
(vertico-posframe-mode
(advice-add #'vertico--display-candidates :override
#'vertico-posframe--display)
- (advice-add #'vertico--setup :after #'vertico-posframe--setup))
+ (advice-add #'vertico--setup :after #'vertico-posframe--setup)
+ (advice-add #'vertico--advice :before #'vertico-posframe--advice))
(t
(advice-remove #'vertico--display-candidates #'vertico-posframe--display)
(advice-remove #'vertico--setup #'vertico-posframe--setup)
+ (advice-remove #'vertico--advice #'vertico-posframe--advice)
(posframe-delete vertico-posframe--buffer))))
(provide 'vertico-posframe)
- [elpa] branch externals/vertico-posframe created (now da03c68), ELPA Syncer, 2021/10/27
- [elpa] externals/vertico-posframe 21f894b 05/10: Add vertico-posframe-last-window and use it.,
ELPA Syncer <=
- [elpa] externals/vertico-posframe 7f01bcf 06/10: Better deal with vertico-posframe--advice., ELPA Syncer, 2021/10/27
- [elpa] externals/vertico-posframe 6a5a170 07/10: * vertico-posframe.el (vertico-posframe--advice): Remove useless orig argument., ELPA Syncer, 2021/10/27
- [elpa] externals/vertico-posframe 3cb6f95 09/10: * vertico-posframe.el (vertico-posframe--display): Do not reset vertico-posframe--last-window, ELPA Syncer, 2021/10/27
- [elpa] externals/vertico-posframe 3a713aa 08/10: v0.2.0, ELPA Syncer, 2021/10/27
- [elpa] externals/vertico-posframe c4f42fd 01/10: Initial commit, ELPA Syncer, 2021/10/27
- [elpa] externals/vertico-posframe d14e6c9 02/10: Init vertico-posframe.el, ELPA Syncer, 2021/10/27
- [elpa] externals/vertico-posframe 4e33c28 03/10: * vertico-posframe.el (vertico-posframe--display): with-selected-window to next-window, ELPA Syncer, 2021/10/27
- [elpa] externals/vertico-posframe 5bca039 04/10: * vertico-posframe.el (vertico-posframe--display): internal-border* -> border*, ELPA Syncer, 2021/10/27
- [elpa] externals/vertico-posframe da03c68 10/10: * vertico-posframe.el (vertico-posframe--advice): deal with minibuffer recursive., ELPA Syncer, 2021/10/27