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

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

[elpa] master 4389a26 056/184: ivy-overlay.el (ivy-overlay-show-after):


From: Oleh Krehel
Subject: [elpa] master 4389a26 056/184: ivy-overlay.el (ivy-overlay-show-after): Check window height better
Date: Wed, 16 Oct 2019 13:14:48 -0400 (EDT)

branch: master
commit 4389a261b30c8fbfc6e31228b33b1764221daac7
Author: Oleh Krehel <address@hidden>
Commit: Oleh Krehel <address@hidden>

    ivy-overlay.el (ivy-overlay-show-after): Check window height better
    
    Check if there are at least `ivy-height' lines available below point
    in the current winodow. If not, scroll the current window enough to
    make them available.
    
    Fixes #2161
---
 ivy-overlay.el | 7 ++++++-
 1 file changed, 6 insertions(+), 1 deletion(-)

diff --git a/ivy-overlay.el b/ivy-overlay.el
index 7f56c6e..7a77bcf 100644
--- a/ivy-overlay.el
+++ b/ivy-overlay.el
@@ -62,6 +62,8 @@ Lines are truncated to the window width."
   (when (fboundp 'company-abort)
     (company-abort)))
 
+(defvar ivy-height)
+
 (defun ivy-overlay-show-after (str)
   "Display STR in an overlay at point.
 
@@ -71,6 +73,9 @@ Then attach the overlay to the character before point."
       (progn
         (move-overlay ivy-overlay-at (1- (point)) (line-end-position))
         (overlay-put ivy-overlay-at 'invisible nil))
+    (let ((available-height (count-lines (point) (window-end nil t))))
+      (unless (>= available-height ivy-height)
+        (recenter (- (window-height) ivy-height 2))))
     (setq ivy-overlay-at (make-overlay (1- (point)) (line-end-position)))
     ;; Specify face to avoid clashing with other overlays.
     (overlay-put ivy-overlay-at 'face 'default)
@@ -95,7 +100,7 @@ Then attach the overlay to the character before point."
   (or
    (and (eq major-mode 'org-mode)
         (plist-get (text-properties-at (point)) 'src-block))
-   (<= (window-height) (+ ivy-height 3))
+   (<= (window-height) (+ ivy-height 2))
    (= (point) (point-min))
    (< (- (+ (window-width) (window-hscroll)) (current-column))
       30)))



reply via email to

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