diff options
| author | Daniel Mendler <mail@daniel-mendler.de> | 2022-11-29 01:43:20 +0100 |
|---|---|---|
| committer | Daniel Mendler <mail@daniel-mendler.de> | 2022-11-29 01:43:20 +0100 |
| commit | a43318b6dda230e819890965b2b97ab9df83469a (patch) | |
| tree | 22822c404c66c4ba8f0cbdcc43fff7cf734286fa | |
| parent | d7628130251c9a60efc8b64f0430d0206afc3da8 (diff) | |
Try to fix flicker on Emacs 29emacs-29-flicker
| -rw-r--r-- | corfu.el | 21 |
1 files changed, 7 insertions, 14 deletions
@@ -375,6 +375,7 @@ FRAME is the existing frame." (set-frame-parameter frame 'corfu--hide-timer nil)) (let* ((window-min-height 1) (window-min-width 1) + (inhibit-redisplay t) (x-gtk-resize-child-frames (let ((case-fold-search t)) (and @@ -418,18 +419,8 @@ FRAME is the existing frame." ;; Mark window as dedicated to prevent frame reuse (#60) (set-window-dedicated-p win t)) (set-frame-size frame width height t) - (if (frame-visible-p frame) - ;; XXX HACK Avoid flicker when frame is already visible. - ;; Redisplay, wait for resize and then move the frame. - (unless (equal (frame-position frame) (cons x y)) - (redisplay 'force) - (sleep-for 0.01) - (set-frame-position frame x y)) - ;; XXX HACK: Force redisplay, otherwise the popup sometimes does not - ;; display content. - (set-frame-position frame x y) - (redisplay 'force) - (make-frame-visible frame)) + (set-frame-position frame x y) + (make-frame-visible frame) (redirect-frame-focus frame parent) frame)) @@ -827,14 +818,16 @@ AUTO is non-nil when initializing auto completion." (corfu--candidates (corfu--candidates-popup beg) (corfu--preview-current beg end) - (redisplay 'force)) ;; XXX HACK Ensure that popup is redisplayed + ;;(redisplay 'force)) ;; XXX HACK Ensure that popup is redisplayed + ) ;; 3) No candidates & corfu-quit-no-match & initialized => Confirmation popup. ((pcase-exhaustive corfu-quit-no-match ('t nil) ('nil corfu--input) ('separator (seq-contains-p (car corfu--input) corfu-separator))) (corfu--popup-show beg 0 8 '(#("No match" 0 8 (face italic)))) - (redisplay 'force)) ;; XXX HACK Ensure that popup is redisplayed + ;;(redisplay 'force)) ;; XXX HACK Ensure that popup is redisplayed + ) ;; 4) No candidates & auto completing or initialized => Quit. ((or auto corfu--input) (corfu-quit))))) |
