[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))))