summaryrefslogtreecommitdiff
path: root/corfu.el
diff options
context:
space:
mode:
authorDaniel Mendler <mail@daniel-mendler.de>2023-12-29 17:39:43 +0100
committerDaniel Mendler <mail@daniel-mendler.de>2023-12-29 17:45:40 +0100
commit1c53066c413faac4afe853153fdb00475c3e4c78 (patch)
treeaec60876d237f4db37b1fdbde0c4fc5e2073e3bf /corfu.el
parent497c8534a267ec39ca80c7e27e70fca48c73563c (diff)
Support the EXWM window manager
Diffstat (limited to 'corfu.el')
-rw-r--r--corfu.el10
1 files changed, 8 insertions, 2 deletions
diff --git a/corfu.el b/corfu.el
index 1af5cb6..16d0546 100644
--- a/corfu.el
+++ b/corfu.el
@@ -454,7 +454,8 @@ FRAME is the existing frame."
(after-make-frame-functions)
(parent (window-frame)))
(unless (and (frame-live-p frame)
- (eq (frame-parent frame) parent)
+ (eq (frame-parent frame)
+ (and (not (bound-and-true-p exwm--connection)) parent))
;; If there is more than one window, `frame-root-window' may
;; return nil. Recreate the frame in this case.
(window-live-p (frame-root-window frame)))
@@ -495,7 +496,12 @@ FRAME is the existing frame."
(set-frame-size frame width height t)
(unless (equal (frame-position frame) (cons x y))
(set-frame-position frame x y)))
- (make-frame-visible frame))
+ (make-frame-visible frame)
+ ;; Unparent child frame if EXWM is used, otherwise EXWM buffers are drawn on
+ ;; top of the Corfu child frame.
+ (when (and (bound-and-true-p exwm--connection) (frame-parent frame))
+ (set-frame-parameter frame 'parent-frame nil))
+ frame)
(defun corfu--hide-frame-deferred (frame)
"Deferred hiding of child FRAME."