diff options
| -rw-r--r-- | corfu.el | 13 |
1 files changed, 8 insertions, 5 deletions
@@ -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)))) |
