[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/posframe 87407a2 1/2: * posframe.el (posframe-show): Ad
From: |
ELPA Syncer |
Subject: |
[elpa] externals/posframe 87407a2 1/2: * posframe.el (posframe-show): Add poshandler-extra-info argument. |
Date: |
Tue, 30 Mar 2021 23:57:10 -0400 (EDT) |
branch: externals/posframe
commit 87407a2966db7161f26c92a1ff1c2fab6fbb00fd
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>
* posframe.el (posframe-show): Add poshandler-extra-info argument.
---
posframe.el | 53 ++++++++++++++++++++++++++++++-----------------------
1 file changed, 30 insertions(+), 23 deletions(-)
diff --git a/posframe.el b/posframe.el
index 7a5abf9..14ac4e0 100644
--- a/posframe.el
+++ b/posframe.el
@@ -378,6 +378,7 @@ This posframe's buffer is BUFFER-OR-NAME."
string
position
poshandler
+ poshandler-extra-info
width
height
min-width
@@ -472,6 +473,10 @@ by the way, poshandler can be used by other packages easily
`((left . ,(car posn))
(top . ,(cdr posn))))
+POSHANDLER-EXTRA-INFO is a plist, which will prepend to the
+argument of poshandler function: 'info', it will *OVERRIDE* the
+exist key in 'info'.
+
This posframe's buffer is BUFFER-OR-NAME, which can be a buffer
or a name of a (possibly nonexistent) buffer.
@@ -542,6 +547,7 @@ The builtin hidehandler functions are listed below:
You can use `posframe-delete-all' to delete all posframes."
(let* ((position (or (funcall posframe-arghandler buffer-or-name :position
position) (point)))
(poshandler (funcall posframe-arghandler buffer-or-name :poshandler
poshandler))
+ (poshandler-extra-info (funcall posframe-arghandler buffer-or-name
:poshandler-extra-info poshandler-extra-info))
(width (funcall posframe-arghandler buffer-or-name :width width))
(height (funcall posframe-arghandler buffer-or-name :height height))
(min-width (or (funcall posframe-arghandler buffer-or-name :min-width
min-width) 1))
@@ -644,29 +650,30 @@ You can use `posframe-delete-all' to delete all
posframes."
posframe
(posframe-run-poshandler
;; All poshandlers will get info from this plist.
- (list :position position
- :position-info position-info
- :poshandler poshandler
- :font-height font-height
- :font-width font-width
- :posframe posframe
- :posframe-width (frame-pixel-width posframe)
- :posframe-height (frame-pixel-height posframe)
- :posframe-buffer buffer
- :parent-frame parent-frame
- :parent-frame-width parent-frame-width
- :parent-frame-height parent-frame-height
- :parent-window parent-window
- :parent-window-top parent-window-top
- :parent-window-left parent-window-left
- :parent-window-width parent-window-width
- :parent-window-height parent-window-height
- :mode-line-height mode-line-height
- :minibuffer-height minibuffer-height
- :header-line-height header-line-height
- :tab-line-height tab-line-height
- :x-pixel-offset x-pixel-offset
- :y-pixel-offset y-pixel-offset))
+ `(,@poshandler-extra-info
+ ,@(list :position position
+ :position-info position-info
+ :poshandler poshandler
+ :font-height font-height
+ :font-width font-width
+ :posframe posframe
+ :posframe-width (frame-pixel-width posframe)
+ :posframe-height (frame-pixel-height posframe)
+ :posframe-buffer buffer
+ :parent-frame parent-frame
+ :parent-frame-width parent-frame-width
+ :parent-frame-height parent-frame-height
+ :parent-window parent-window
+ :parent-window-top parent-window-top
+ :parent-window-left parent-window-left
+ :parent-window-width parent-window-width
+ :parent-window-height parent-window-height
+ :mode-line-height mode-line-height
+ :minibuffer-height minibuffer-height
+ :header-line-height header-line-height
+ :tab-line-height tab-line-height
+ :x-pixel-offset x-pixel-offset
+ :y-pixel-offset y-pixel-offset)))
parent-frame-width parent-frame-height)
;; Delay hide posframe when timeout is a number.