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