feature/popup: reduce state in window parameters & fix popup continuity

+ Fix list where cons should be
+ Update +popup-window-parameters docstring
+ Use display-buffer instead of +popup-buffer (no need to remember
  alist). This ensures restored popups (with +popup/restore) are truly
  identical to their former selves.
This commit is contained in:
Henrik Lissner 2018-01-06 13:30:59 -05:00
parent 25ec2bdcbb
commit eef808d795
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395
2 changed files with 7 additions and 7 deletions

View file

@ -13,7 +13,7 @@
(cl-assert (cl-every #'windowp windows) t)
(setq +popup--last
(cl-loop for w in windows
collect (list (window-buffer w)
collect (cons (window-buffer w)
(window-state-get w)))))
(defun +popup--kill-buffer (buffer ttl)
@ -31,7 +31,7 @@ the buffer is visible, then set another timer and try again later."
(kill-process process))
(kill-buffer buffer)))))
(defun +popup--init (window alist)
(defun +popup--init (window)
"Initializes a popup window. Run any time a popup is opened. It sets the
default window parameters for popup windows, clears leftover transient timers
and enables `+popup-buffer-mode'."
@ -110,7 +110,7 @@ current buffer."
(alist (+popup--normalize-alist alist))
(new-window (or (display-buffer-reuse-window buffer alist)
(display-buffer-in-side-window buffer alist))))
(+popup--init new-window alist)
(+popup--init new-window)
(select-window
(if (+popup-parameter 'select new-window)
new-window
@ -281,7 +281,7 @@ the message buffer in a popup window."
(error "No popups to restore"))
(cl-loop for (buffer . state) in +popup--last
if (and (buffer-live-p buffer)
(+popup-buffer buffer))
(display-buffer buffer))
do (window-state-put state it))
(setq +popup--last nil))