From 0afd1f72667653581313f98f7939dd3d9b569ecd Mon Sep 17 00:00:00 2001 From: Daniel Mendler Date: Fri, 1 Nov 2024 17:39:02 +0100 Subject: Force fringe update --- corfu.el | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/corfu.el b/corfu.el index 35a0c38..295e304 100644 --- a/corfu.el +++ b/corfu.el @@ -479,7 +479,8 @@ 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. - (let* ((is (frame-parameters frame)) + (let* ((win (frame-root-window frame)) + (is (frame-parameters frame)) (should `((background-color . ,(face-attribute 'corfu-default :background nil 'default)) (font . ,(frame-parameter parent 'font)) @@ -488,9 +489,9 @@ FRAME is the existing frame." ,@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) (current-buffer)) + (when diff (modify-frame-parameters frame diff)) + ;; XXX HACK: `set-window-buffer' must be called to force fringe update. + (when (or diff (eq (window-buffer win) (current-buffer))) (set-window-buffer win (current-buffer))) ;; Disallow selection of root window (gh:minad/corfu#63) (set-window-parameter win 'no-delete-other-windows t) -- cgit v1.0