[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[elpa] externals/ivy-posframe 755562e: * ivy-posframe.el (ivy-posframe-r
From: |
ELPA Syncer |
Subject: |
[elpa] externals/ivy-posframe 755562e: * ivy-posframe.el (ivy-posframe-refposhandler-default): New function. |
Date: |
Thu, 8 Apr 2021 22:57:07 -0400 (EDT) |
branch: externals/ivy-posframe
commit 755562e0a94091801bdfe86df1e2197bdb0b815d
Author: Feng Shu <tumashu@163.com>
Commit: Feng Shu <tumashu@163.com>
* ivy-posframe.el (ivy-posframe-refposhandler-default): New function.
---
ivy-posframe.el | 27 +++++++++++++++++----------
1 file changed, 17 insertions(+), 10 deletions(-)
diff --git a/ivy-posframe.el b/ivy-posframe.el
index 89f782f..114315e 100644
--- a/ivy-posframe.el
+++ b/ivy-posframe.el
@@ -178,17 +178,10 @@ When nil, Using current frame's font as fallback."
:type 'number)
(define-obsolete-variable-alias 'ivy-posframe-parent-frame-poshandler
'ivy-posframe-refposhandler "0.6")
-(defcustom ivy-posframe-refposhandler nil
- "The parent frame poshandler use by ivy-posframe.
+(defcustom ivy-posframe-refposhandler #'ivy-posframe-refposhandler-default
+ "The refposhandler use by ivy-posframe.
-User can set it to a function like below in EXWM environment, if
-EXWM's emacs position is (0 0).
-
- (lambda (_frame) (cons 0 0))
-
-if not, user should provide own function, a reference is:
-
-`posframe-refposhandler-xwininfo'"
+NOTE: This variable is very useful to EXWM users."
:type 'function)
(defcustom ivy-posframe-size-function #'ivy-posframe-get-size
@@ -252,6 +245,20 @@ This variable is useful for `ivy-posframe-read-action' .")
;; Fix warn
(defvar emacs-basic-display)
(defvar ivy--display-function)
+(defvar exwm--connection)
+
+(defun ivy-posframe-refposhandler-default (&optional frame)
+ "The default posframe refposhandler used by ivy-posframe."
+ (cond
+ ;; EXWM environment
+ (exwm--connection
+ (or (ignore-errors
+ ;; Need user install xwininfo.
+ (posframe-refposhandler-xwininfo frame))
+ ;; FIXME: maybe exwm provide some function,
+ ;; Which can get top-left of emacs.
+ (cons 0 0)))
+ (t nil)))
(defun ivy-posframe--display (str &optional poshandler)
"Show STR in ivy's posframe with POSHANDLER."
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [elpa] externals/ivy-posframe 755562e: * ivy-posframe.el (ivy-posframe-refposhandler-default): New function.,
ELPA Syncer <=