branch: externals/corfu commit aee555ea7de0b74906c014c5754c8c6fb2a0c44b Author: Daniel Mendler <m...@daniel-mendler.de> Commit: Daniel Mendler <m...@daniel-mendler.de>
Document another bug, frame border is not updated appropriately --- corfu.el | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/corfu.el b/corfu.el index 4417154..534fd14 100644 --- a/corfu.el +++ b/corfu.el @@ -322,14 +322,15 @@ filter string with spaces is allowed." ;; XXX HACK Setting the same frame-parameter/face-background is not a nop (BUG!). ;; Check explicitly before applying the setting. ;; Without the check, the frame flickers on Mac. - ;; With the check, the inner frame sometimes does not get updated sometimes (BUG!). - (let ((new (face-attribute 'corfu-background :background))) - (unless (equal (frame-parameter corfu--frame 'background-color) new) - (set-frame-parameter corfu--frame 'background-color new))) + ;; XXX HACK We have to apply the face background before adjusting the frame parameter, + ;; otherwise the border is not updated (BUG!). (let* ((face (if (facep 'child-frame-border) 'child-frame-border 'internal-border)) (new (face-attribute 'corfu-border :background))) (unless (equal (face-attribute face :background corfu--frame) new) (set-face-background face new corfu--frame))) + (let ((new (face-attribute 'corfu-background :background))) + (unless (equal (frame-parameter corfu--frame 'background-color) new) + (set-frame-parameter corfu--frame 'background-color new))) (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.