feature/popup: tweak popup rules, add +popup-shrink-to-fit

+popup-shrink-to-fit wraps shrink-window-if-larger-than-buffer, and
won't do anything if the buffer is empty.
This commit is contained in:
Henrik Lissner 2018-01-07 18:22:56 -05:00
parent b11101d9cf
commit 5a420faa0f
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
3 changed files with 15 additions and 3 deletions

View file

@ -82,7 +82,9 @@
;; `org'
(after! org
(set! :popup "^ ?\\*Org \\(todo\\|Links\\)" '((slot . -1) (size . shrink-window-if-larger-than-buffer)))
(set! :popup "^\\*Org \\(?:Links\\|Export Dispatcher\\|Select\\)"
'((slot . -1) (size . +popup-shrink-to-fit))
'((select)))
(set! :popup "^\\*Org Agenda" '((slot . -1) (size . 20)))
(set! :popup "^\\*Org Src" '((size . 0.3)) '((quit) (select . t)))

View file

@ -144,6 +144,16 @@ with ARGS to get its return value."
"Returns a list of all popup windows."
(cl-remove-if-not #'+popup-p (window-list)))
;;;###autoload
(defun +popup-shrink-to-fit (&optional window)
"Shrinks WINDOW to fit the buffer contents, if the buffer isn't empty.
Uses `shrink-window-if-larger-than-buffer'."
(unless window
(setq window (selected-window)))
(unless (= (- (point-max) (point-min)) 0)
(shrink-window-if-larger-than-buffer window)))
;;
;; Minor mode

View file

@ -137,7 +137,7 @@ ALIST supports one custom parameter: `size', which will resolve to
;;
(eval-when-compile
(set! :popup "^ \\*" '((slot . -1)))
(set! :popup "^ \\*" '((slot . -1) (size . +popup-shrink-to-fit)))
(set! :popup "^\\*" nil '((select . t)))
(set! :popup "^\\*Completions" '((slot . -1)) '((transient . 0)))
(set! :popup "^\\*Compilation" nil '((transient . 0) (quit . t)))