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

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

[elpa] externals/corfu 14d4179caa 2/2: corfu-popupinfo: Align popups at


From: ELPA Syncer
Subject: [elpa] externals/corfu 14d4179caa 2/2: corfu-popupinfo: Align popups at the bottom, if above input (Fix #271, Fix #272)
Date: Mon, 5 Dec 2022 02:57:33 -0500 (EST)

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

    corfu-popupinfo: Align popups at the bottom, if above input (Fix #271, Fix 
#272)
---
 extensions/corfu-popupinfo.el | 13 ++++++++-----
 1 file changed, 8 insertions(+), 5 deletions(-)

diff --git a/extensions/corfu-popupinfo.el b/extensions/corfu-popupinfo.el
index 89975c2dc1..d0cee7bcca 100644
--- a/extensions/corfu-popupinfo.el
+++ b/extensions/corfu-popupinfo.el
@@ -287,18 +287,21 @@ form (X Y WIDTH HEIGHT DIR)."
                (`(,_pfx ,_pfy ,pfw ,pfh)
                 (corfu-popupinfo--frame-geometry (frame-parent corfu--frame)))
                (`(,cfx ,cfy ,cfw ,cfh) (corfu-popupinfo--frame-geometry 
corfu--frame))
+               ;; Candidates popup below input
+               (below (>= cfy (+ lh (cadr (window-inside-pixel-edges))
+                                 (window-tab-line-height)
+                                 (or (cdr (posn-x-y (posn-at-point (point)))) 
0))))
                ;; Left display area
-               (al (list (max 0 (- cfx (car ps) border)) cfy
+               (ahy (if below cfy (- (+ cfy cfh) (cdr ps) border border)))
+               (al (list (max 0 (- cfx (car ps) border)) ahy
                          (min (- cfx border) (car ps)) (cdr ps) 'left))
                ;; Right display area
                (arx (+ cfx cfw (- border)))
-               (ar (list arx cfy (min (- pfw arx border border) (car ps))
+               (ar (list arx ahy (min (- pfw arx border border) (car ps))
                          (cdr ps) 'right))
                ;; Vertical display area
                (avw (min (car ps) (- pfw cfx border border)))
-               (av (if (>= cfy (+ lh (cadr (window-inside-pixel-edges))
-                                  (window-tab-line-height)
-                                  (or (cdr (posn-x-y (posn-at-point (point)))) 
0)))
+               (av (if below
                        (list cfx (+ cfy cfh (- border)) avw (min (- pfh cfy 
cfh border) (cdr ps)) 'vertical)
                      (let ((h (min (- cfy border border) (cdr ps))))
                        (list cfx (max 0 (- cfy h border)) avw h 'vertical)))))



reply via email to

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