[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/posframe 59911917d5: add posframe-poshandler-frame-top-
From: |
ELPA Syncer |
Subject: |
[elpa] externals/posframe 59911917d5: add posframe-poshandler-frame-top-left-or-right-other-corner |
Date: |
Thu, 1 Jun 2023 12:59:50 -0400 (EDT) |
branch: externals/posframe
commit 59911917d57f77577e1aa6df7584fa00636de84a
Author: JJPandari <airbrownie@hotmail.com>
Commit: tumashu <tumashu@163.com>
add posframe-poshandler-frame-top-left-or-right-other-corner
---
posframe.el | 50 +++++++++++++++++++++++++++++++++++---------------
1 file changed, 35 insertions(+), 15 deletions(-)
diff --git a/posframe.el b/posframe.el
index 32f730c83b..db26dd143b 100644
--- a/posframe.el
+++ b/posframe.el
@@ -217,21 +217,22 @@ The builtin poshandler functions are listed below:
2. `posframe-poshandler-frame-top-center'
3. `posframe-poshandler-frame-top-left-corner'
4. `posframe-poshandler-frame-top-right-corner'
-5. `posframe-poshandler-frame-bottom-center'
-6. `posframe-poshandler-frame-bottom-left-corner'
-7. `posframe-poshandler-frame-bottom-right-corner'
-8. `posframe-poshandler-window-center'
-9. `posframe-poshandler-window-top-center'
-10. `posframe-poshandler-window-top-left-corner'
-11. `posframe-poshandler-window-top-right-corner'
-12. `posframe-poshandler-window-bottom-center'
-13. `posframe-poshandler-window-bottom-left-corner'
-14. `posframe-poshandler-window-bottom-right-corner'
-15. `posframe-poshandler-point-top-left-corner'
-16. `posframe-poshandler-point-bottom-left-corner'
-17. `posframe-poshandler-point-bottom-left-corner-upward'
-18. `posframe-poshandler-point-window-center'
-19. `posframe-poshandler-point-frame-center'
+5. `posframe-poshandler-frame-top-left-or-right-other-corner'
+6. `posframe-poshandler-frame-bottom-center'
+7. `posframe-poshandler-frame-bottom-left-corner'
+8. `posframe-poshandler-frame-bottom-right-corner'
+9. `posframe-poshandler-window-center'
+10. `posframe-poshandler-window-top-center'
+11. `posframe-poshandler-window-top-left-corner'
+12. `posframe-poshandler-window-top-right-corner'
+13. `posframe-poshandler-window-bottom-center'
+14. `posframe-poshandler-window-bottom-left-corner'
+15. `posframe-poshandler-window-bottom-right-corner'
+16. `posframe-poshandler-point-top-left-corner'
+17. `posframe-poshandler-point-bottom-left-corner'
+18. `posframe-poshandler-point-bottom-left-corner-upward'
+19. `posframe-poshandler-point-window-center'
+20. `posframe-poshandler-point-frame-center'
(3) POSHANDLER-EXTRA-INFO
@@ -1281,6 +1282,25 @@ The structure of INFO can be found in docstring of
`posframe-show'."
'(-1 . 0))
+(defun posframe-poshandler-frame-top-left-or-right-other-corner (info)
+ "Posframe's position handler.
+
+This poshandler function let posframe align to top left or top right corner of
frame,
+based on whether current window is relatively at left or right in the current
frame.
+If window is at left, place posframe on right, and vice versa.
+(This is calculated by whether current window center is left or right to frame
center)
+
+The structure of INFO can be found in docstring of
+`posframe-show'."
+ (let ((window-left (plist-get info :parent-window-left))
+ (window-width (plist-get info :parent-window-width))
+ (frame-width (plist-get info :parent-frame-width)))
+ ;; when equal, put posframe on right because content in window tend to be
on left
+ (if (<= (+ window-left (/ window-width 2))
+ (/ frame-width 2))
+ '(-1 . 0)
+ '(0 . 0))))
+
(defun posframe-poshandler-frame-bottom-left-corner (info)
"Posframe's position handler.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/posframe 59911917d5: add posframe-poshandler-frame-top-left-or-right-other-corner,
ELPA Syncer <=