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

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

[elpa] externals/posframe e15b39ccf3 1/2: Add posframe--get-valid-poshan


From: ELPA Syncer
Subject: [elpa] externals/posframe e15b39ccf3 1/2: Add posframe--get-valid-poshandler
Date: Wed, 14 Dec 2022 03:58:06 -0500 (EST)

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

    Add posframe--get-valid-poshandler
---
 posframe.el | 26 ++++++++++++++------------
 1 file changed, 14 insertions(+), 12 deletions(-)

diff --git a/posframe.el b/posframe.el
index fe33656fd3..fd81d92814 100644
--- a/posframe.el
+++ b/posframe.el
@@ -829,18 +829,8 @@ of `posframe-show'."
       posframe--last-posframe-pixel-position
     (setq posframe--last-poshandler-info info)
     (let* ((ref-position (plist-get info :ref-position))
-           (position
-            (funcall
-             (or (plist-get info :poshandler)
-                 (let ((position (plist-get info :position)))
-                   (cond ((integerp position)
-                          #'posframe-poshandler-point-bottom-left-corner)
-                         ((and (consp position)
-                               (integerp (car position))
-                               (integerp (cdr position)))
-                          #'posframe-poshandler-absolute-x-y)
-                         (t (error "Posframe: have no valid poshandler")))))
-             info))
+           (poshandler (posframe--get-valid-poshandler info))
+           (position (funcall poshandler info))
            (x (car position))
            (y (cdr position)))
       (if (not ref-position)
@@ -858,6 +848,18 @@ of `posframe-show'."
           (cons (+ ref-x x)
                 (+ ref-y y)))))))
 
+(defun posframe--get-valid-poshandler (info)
+  "Get valid poshandler function with the help of INFO."
+  (or (plist-get info :poshandler)
+      (let ((position (plist-get info :position)))
+        (cond ((integerp position)
+               #'posframe-poshandler-point-bottom-left-corner)
+              ((and (consp position)
+                    (integerp (car position))
+                    (integerp (cdr position)))
+               #'posframe-poshandler-absolute-x-y)
+              (t (error "Posframe: have no valid poshandler"))))))
+
 (defun posframe--set-frame-position (posframe position
                                               parent-frame-width
                                               parent-frame-height)



reply via email to

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