summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ivy-posframe.el14
1 files changed, 11 insertions, 3 deletions
diff --git a/ivy-posframe.el b/ivy-posframe.el
index 114315e..67b07b3 100644
--- a/ivy-posframe.el
+++ b/ivy-posframe.el
@@ -245,7 +245,10 @@ This variable is useful for `ivy-posframe-read-action' .")
;; Fix warn
(defvar emacs-basic-display)
(defvar ivy--display-function)
+
(defvar exwm--connection)
+(defvar exwm-workspace--workareas)
+(defvar exwm-workspace-current-index)
(defun ivy-posframe-refposhandler-default (&optional frame)
"The default posframe refposhandler used by ivy-posframe."
@@ -253,10 +256,15 @@ This variable is useful for `ivy-posframe-read-action' .")
;; EXWM environment
(exwm--connection
(or (ignore-errors
- ;; Need user install xwininfo.
+ (let ((info (elt exwm-workspace--workareas
+ exwm-workspace-current-index)))
+ (cons (elt info 0)
+ (elt info 1))))
+ ;; Need user install xwininfo.
+ (ignore-errors
(posframe-refposhandler-xwininfo frame))
- ;; FIXME: maybe exwm provide some function,
- ;; Which can get top-left of emacs.
+ ;; Fallback, this value will incorrect sometime, for example: user
+ ;; have panel.
(cons 0 0)))
(t nil)))