From ad5153a87af6b0f399c8badee1a255679c88eacd Mon Sep 17 00:00:00 2001 From: Daniel Mendler Date: Wed, 3 Jan 2024 07:06:28 +0100 Subject: corfu--make-frame: Minor cleanup --- corfu.el | 21 +++++++++++---------- 1 file changed, 11 insertions(+), 10 deletions(-) diff --git a/corfu.el b/corfu.el index 0280d8c..62ae458 100644 --- a/corfu.el +++ b/corfu.el @@ -484,14 +484,14 @@ FRAME is the existing frame." ;; overrides the parameter `tool-bar-lines' for every frame, including child ;; frames. The child frame API is a pleasure to work with. It is full of ;; lovely surprises. - (when-let ((params (frame-parameters frame)) - (reset (seq-remove - (lambda (p) (equal (alist-get (car p) params) (cdr p))) - `((background-color - . ,(face-attribute 'corfu-default :background nil 'default)) - (font . ,(frame-parameter parent 'font)) - ,@corfu--frame-parameters)))) - (modify-frame-parameters frame reset)) + (let* ((is (frame-parameters frame)) + (should `((background-color + . ,(face-attribute 'corfu-default :background nil 'default)) + (font . ,(frame-parameter parent 'font)) + ,@corfu--frame-parameters)) + (diff (cl-loop for p in should for (k . v) = p + unless (equal (alist-get k is) v) collect p))) + (when diff (modify-frame-parameters frame diff))) (let ((win (frame-root-window frame))) (unless (eq (window-buffer win) buffer) (set-window-buffer win buffer)) @@ -502,8 +502,9 @@ FRAME is the existing frame." (set-window-dedicated-p win t)) (redirect-frame-focus frame parent) (set-frame-size frame width height t) - (unless (equal (frame-position frame) (cons x y)) - (set-frame-position frame x y))) + (pcase-let ((`(,px . ,py) (frame-position frame))) + (unless (and (= x px) (= y py)) + (set-frame-position frame x y)))) (make-frame-visible frame) ;; Unparent child frame if EXWM is used, otherwise EXWM buffers are drawn on ;; top of the Corfu child frame. -- cgit v1.0