emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/vertico-posframe f6d9dfba52: Simplify vertico-posframe-


From: ELPA Syncer
Subject: [elpa] externals/vertico-posframe f6d9dfba52: Simplify vertico-posframe--display.
Date: Tue, 11 Jan 2022 22:57:47 -0500 (EST)

branch: externals/vertico-posframe
commit f6d9dfba520744c2724fd1f6101b7f8892665345
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>

    Simplify vertico-posframe--display.
    
            * vertico-posframe.el (vertico-posframe--display)
            (vertico-posframe--show)
            (vertico-posframe--handle-minibuffer-window)
---
 vertico-posframe.el | 43 ++++++++++++++++++++++++-------------------
 1 file changed, 24 insertions(+), 19 deletions(-)

diff --git a/vertico-posframe.el b/vertico-posframe.el
index 9cde34007c..ad89f27929 100644
--- a/vertico-posframe.el
+++ b/vertico-posframe.el
@@ -193,32 +193,34 @@ Optional argument FRAME ."
                     (min width (or vertico-posframe-width width))))))
 
 (defun vertico-posframe--display (_lines)
-  "Display LINES in posframe."
-  (let ((point (point)))
-    (setq vertico-posframe--buffer (current-buffer))
-    (setq-local max-mini-window-height 1)
+  "Display _LINES in posframe."
+  (let ((buffer (current-buffer))
+        (point (point)))
+    (setq vertico-posframe--buffer buffer)
     (vertico-posframe--handle-minibuffer-window)
-    (with-selected-window (vertico-posframe-last-window)
-      (vertico-posframe--show vertico-posframe--buffer point))))
+    (vertico-posframe--show buffer point)))
 
 (defun vertico-posframe--show (buffer window-point)
   "`posframe-show' of vertico-posframe.
 
 BUFFER will be showed by `posframe-show'.  After `posframe-show'
 is called, window-point will be set to WINDOW-POINT."
-  (let ((posframe (apply #'posframe-show
-                         buffer
-                         :font vertico-posframe-font
-                         :poshandler vertico-posframe-poshandler
-                         :background-color (face-attribute 'vertico-posframe 
:background nil t)
-                         :foreground-color (face-attribute 'vertico-posframe 
:foreground nil t)
-                         :border-width vertico-posframe-border-width
-                         :border-color (vertico-posframe--get-border-color)
-                         :override-parameters vertico-posframe-parameters
-                         :refposhandler vertico-posframe-refposhandler
-                         :hidehandler #'vertico-posframe-hidehandler
-                         :lines-truncate t
-                         (funcall vertico-posframe-size-function))))
+  (let ((posframe
+         ;; Some posframe poshandlers need infos of last-window.
+         (with-selected-window (vertico-posframe-last-window)
+           (apply #'posframe-show
+                  buffer
+                  :font vertico-posframe-font
+                  :poshandler vertico-posframe-poshandler
+                  :background-color (face-attribute 'vertico-posframe 
:background nil t)
+                  :foreground-color (face-attribute 'vertico-posframe 
:foreground nil t)
+                  :border-width vertico-posframe-border-width
+                  :border-color (vertico-posframe--get-border-color)
+                  :override-parameters vertico-posframe-parameters
+                  :refposhandler vertico-posframe-refposhandler
+                  :hidehandler #'vertico-posframe-hidehandler
+                  :lines-truncate t
+                  (funcall vertico-posframe-size-function)))))
     ;; NOTE: `posframe-show' will force set window-point to 0, so we
     ;; need reset it again after `posframe-show'.
     (when (numberp window-point)
@@ -260,6 +262,7 @@ is called, window-point will be set to WINDOW-POINT."
   "Handle minibuffer window."
   (let ((show-minibuffer-p (vertico-posframe--show-minibuffer-p))
         (minibuffer-window (active-minibuffer-window)))
+    (setq-local max-mini-window-height 1)
     (window-resize minibuffer-window
                    (- (window-pixel-height minibuffer-window))
                    nil nil 'pixelwise)
@@ -277,6 +280,8 @@ is called, window-point will be set to WINDOW-POINT."
 
 (defun vertico-posframe--minibuffer-exit-hook ()
   "The function used by `minibuffer-exit-hook'."
+  ;; `vertico--resize-window' have set `max-mini-window-height' to
+  ;; 1.0, so I think setting it to 1.0 here is safe :-).
   (setq-local max-mini-window-height 1.0)
   (when (posframe-workable-p)
     (posframe-hide vertico-posframe--buffer)))



reply via email to

[Prev in Thread] Current Thread [Next in Thread]