branch: externals/vertico-posframe
commit 1b7b64af1abbf506b2162ff388be6b0e6b864557
Author: Feng Shu <tuma...@163.com>
Commit: Feng Shu <tuma...@163.com>

    Add vertico-posframe--multiform-function
---
 vertico-posframe.el | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/vertico-posframe.el b/vertico-posframe.el
index 2b04e9a147..789e18bde5 100644
--- a/vertico-posframe.el
+++ b/vertico-posframe.el
@@ -186,18 +186,20 @@ minibuffer will not be hided by minibuffer-cover."
 (define-minor-mode vertico-posframe-mode
   "Display Vertico in posframe instead of the minibuffer."
   :global t
-  (cond
-   (vertico-posframe-mode
-    (when (not (posframe-workable-p))
-      (funcall (buffer-local-value 'vertico-posframe-fallback-mode 
(current-buffer)) 1)))
-   (t
-    (if (not (posframe-workable-p))
-        (funcall (buffer-local-value 'vertico-posframe-fallback-mode 
(current-buffer)) -1)
-      ;; When vertico-posframe-mode is disabled, hide posframe and let
-      ;; the contents of minibuffer show again, this approach let
-      ;; vertico-posframe works with vertico multiform toggle.
-      (set-window-vscroll (active-minibuffer-window) 0)
-      (posframe-hide vertico-posframe--buffer)))))
+  (if vertico-posframe-mode
+      (unless (posframe-workable-p)
+        (funcall (buffer-local-value 'vertico-posframe-fallback-mode 
(current-buffer)) 1))
+    (if (posframe-workable-p)
+        (vertico-posframe--multiform-function)
+      (funcall (buffer-local-value 'vertico-posframe-fallback-mode 
(current-buffer)) -1))))
+
+(defun vertico-posframe--multiform-function ()
+  "Function work with `'vertico-multiform-mode'.
+When `vertico-posframe-mode' is disabled, hide posframe and let
+the contents of minibuffer show again, this approach let
+vertico-posframe works with vertico multiform toggle."
+  (set-window-vscroll (active-minibuffer-window) 0)
+  (posframe-hide vertico-posframe--buffer))
 
 ;; Support vertico-multiform
 (cl-pushnew 'vertico-posframe-mode vertico-multiform--display-modes)

Reply via email to