[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)