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

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

[elpa] externals/corfu 2c876e7bf0 3/3: Try a different frame resizing ha


From: ELPA Syncer
Subject: [elpa] externals/corfu 2c876e7bf0 3/3: Try a different frame resizing hack to reduce flicker
Date: Wed, 19 Jan 2022 17:57:29 -0500 (EST)

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

    Try a different frame resizing hack to reduce flicker
---
 corfu.el | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/corfu.el b/corfu.el
index 6e3c5fdf18..7c75fcbd28 100644
--- a/corfu.el
+++ b/corfu.el
@@ -419,13 +419,16 @@ The completion backend can override this with
       (set-window-buffer win buffer)
       ;; Mark window as dedicated to prevent frame reuse (#60)
       (set-window-dedicated-p win t))
-    ;; XXX HACK Make the frame invisible before moving the popup in order to 
avoid flicker.
-    (unless (eq (cdr (frame-position corfu--frame)) y)
-      (make-frame-invisible corfu--frame))
-    (set-frame-position corfu--frame x y)
     (set-frame-size corfu--frame width height t)
-    (unless (frame-visible-p corfu--frame)
+    (if (frame-visible-p corfu--frame)
+        ;; XXX HACK Avoid flicker when frame is already visible.
+        ;; Redisplay, wait for resize and then move the frame.
+        (unless (equal (frame-position corfu--frame) (cons x y))
+          (redisplay)
+          (sleep-for 0.01)
+          (set-frame-position corfu--frame x y))
       ;; XXX HACK: Force redisplay, otherwise the popup sometimes does not 
display content.
+      (set-frame-position corfu--frame x y)
       (redisplay)
       (make-frame-visible corfu--frame))))
 



reply via email to

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