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

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

[elpa] master 09cb5c9 025/272: ivy: fix ivy--resize-minibuffer-to-fit fo


From: Oleh Krehel
Subject: [elpa] master 09cb5c9 025/272: ivy: fix ivy--resize-minibuffer-to-fit for small delta
Date: Mon, 25 Apr 2016 10:13:14 +0000

branch: master
commit 09cb5c9625d5d9f0d7195ed399302d4f224ba086
Author: Felix Lange <address@hidden>
Commit: Felix Lange <address@hidden>

    ivy: fix ivy--resize-minibuffer-to-fit for small delta
    
    Very small size increments can be necessary if the initial candidate
    list is short (e.g. 3 items) and line-height is set to something other
    than zero. In that case, only half of the last line is initially
    visible. ivy--resize-minibuffer-to-fit recognizes this and tries to
    enlarge the window up the the exact pixel height required, however
    window-resize doesn't do anything if the delta is below
    frame-char-height.
---
 ivy.el |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

diff --git a/ivy.el b/ivy.el
index 01126d9..16b8d81 100644
--- a/ivy.el
+++ b/ivy.el
@@ -1752,7 +1752,10 @@ Should be run via minibuffer `post-command-hook'."
         (let ((text-height (cdr (window-text-pixel-size)))
               (body-height (window-body-height nil t)))
           (when (> text-height body-height)
-            (window-resize nil (- text-height body-height) nil t t)))
+            ;; Note: the size increment needs to be at least frame-char-height,
+            ;; otherwise resizing won't do anything.
+            (let ((delta (max (- text-height body-height) 
(frame-char-height))))
+              (window-resize nil delta nil t t))))
       (let ((text-height (count-screen-lines))
             (body-height (window-body-height)))
         (when (> text-height body-height)



reply via email to

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