feature/popup: add +popup|cleanup-rules hook

This commit is contained in:
Henrik Lissner 2018-01-07 05:44:58 -05:00
parent a76de01f4f
commit d2a4408877
No known key found for this signature in database
GPG key ID: 5F6C0EA160557395

View file

@ -155,6 +155,7 @@ with ARGS to get its return value."
(cond (+popup-mode
(add-hook 'doom-unreal-buffer-functions #'+popup-p)
(add-hook 'doom-escape-hook #'+popup|close-on-escape t)
(add-hook 'doom-cleanup-hook #'+popup|cleanup-rules)
(setq +popup--old-display-buffer-alist display-buffer-alist
display-buffer-alist +popup--display-buffer-alist)
(dolist (prop +popup-window-parameters)
@ -162,7 +163,9 @@ with ARGS to get its return value."
(t
(remove-hook 'doom-unreal-buffer-functions #'+popup-p)
(remove-hook 'doom-escape-hook #'+popup|close-on-escape)
(remove-hook 'doom-cleanup-hook #'+popup|cleanup-rules)
(setq display-buffer-alist +popup--old-display-buffer-alist)
(+popup|cleanup-rules)
(dolist (prop +popup-window-parameters)
(map-delete prop window-persistent-parameters)))))
@ -224,6 +227,16 @@ disabled."
#'+popup/close
#'+popup/close-all)))
;;;###autoload
(defun +popup|cleanup-rules ()
"Cleans up any duplicate popup rules."
(interactive)
(cl-delete-duplicates
+popup--display-buffer-alist
:key #'car :test #'equal :from-end t)
(when +popup-mode
(setq display-buffer-alist +popup--display-buffer-alist)))
;;
;; Commands