emacs-elpa-diffs
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[elpa] externals/corfu 1acc028 1/4: corfu--make-frame: Apply frame/face


From: ELPA Syncer
Subject: [elpa] externals/corfu 1acc028 1/4: corfu--make-frame: Apply frame/face settings only if changed (Fix #37)
Date: Fri, 16 Jul 2021 18:57:08 -0400 (EDT)

branch: externals/corfu
commit 1acc02809b204d38be2d72ac4ffa96a06ef0c45b
Author: Daniel Mendler <mail@daniel-mendler.de>
Commit: Daniel Mendler <mail@daniel-mendler.de>

    corfu--make-frame: Apply frame/face settings only if changed (Fix #37)
---
 corfu.el | 17 +++++++++++------
 1 file changed, 11 insertions(+), 6 deletions(-)

diff --git a/corfu.el b/corfu.el
index ebb1d21..5abe8f6 100644
--- a/corfu.el
+++ b/corfu.el
@@ -319,12 +319,17 @@ filter string with spaces is allowed."
                             (internal-border-width
                              . ,(alist-get 'child-frame-border-width 
corfu--frame-parameters))
                             ,@corfu--frame-parameters))))
-    (set-face-background
-     (if (facep 'child-frame-border) 'child-frame-border 'internal-border)
-     (face-attribute 'corfu-border :background) corfu--frame)
-    (set-frame-parameter
-     corfu--frame 'background-color
-     (face-attribute 'corfu-background :background))
+    ;;; Setting the same frame-parameter/face-background is not a nop (bug?).
+    ;;; Check explicitly before applying the setting.
+    (let* ((curr (frame-parameter corfu--frame 'background-color))
+          (new (face-attribute 'corfu-background :background)))
+      (unless (equal curr new)
+       (set-frame-parameter corfu--frame 'background-color new)))
+    (let* ((face (if (facep 'child-frame-border) 'child-frame-border 
'internal-border))
+          (curr (face-attribute face :background corfu--frame))
+          (new (face-attribute 'corfu-border :background)))
+      (unless (equal curr new)
+       (set-face-background face new corfu--frame)))
     (set-window-buffer (frame-root-window corfu--frame) buffer)
     ;; XXX HACK Make the frame invisible before moving the popup from above to 
below the line in
     ;; order to avoid flicker.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]