Add new variable: doom-popup-windows
Contains a list of open popup windows. This preserves window order. Before this commit, doom-popup-windows (the function), did not do this.
This commit is contained in:
parent
4fc39a0f71
commit
8c3693ed47
2 changed files with 6 additions and 1 deletions
|
@ -47,7 +47,7 @@ possible rules."
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom-popup-windows ()
|
(defun doom-popup-windows ()
|
||||||
"Get a list of open pop up windows."
|
"Get a list of open pop up windows."
|
||||||
(cl-remove-if-not #'doom-popup-p (window-list)))
|
(cl-remove-if-not #'doom-popup-p doom-popup-windows))
|
||||||
|
|
||||||
;;;###autoload
|
;;;###autoload
|
||||||
(defun doom/popup-restore ()
|
(defun doom/popup-restore ()
|
||||||
|
|
|
@ -28,6 +28,9 @@
|
||||||
(defvar doom-popup-no-fringes t
|
(defvar doom-popup-no-fringes t
|
||||||
"If non-nil, disable fringes in popup windows.")
|
"If non-nil, disable fringes in popup windows.")
|
||||||
|
|
||||||
|
(defvar doom-popup-windows ()
|
||||||
|
"A list of open popup windows.")
|
||||||
|
|
||||||
(defvar-local doom-popup-rules nil
|
(defvar-local doom-popup-rules nil
|
||||||
"The shackle rule that caused this buffer to be recognized as a popup.")
|
"The shackle rule that caused this buffer to be recognized as a popup.")
|
||||||
|
|
||||||
|
@ -215,6 +218,7 @@ and setting `doom-popup-rules' within it. Returns the window."
|
||||||
(setcar args (clone-indirect-buffer (buffer-name (car args)) nil t)))
|
(setcar args (clone-indirect-buffer (buffer-name (car args)) nil t)))
|
||||||
(unless (setq window (apply orig-fn args))
|
(unless (setq window (apply orig-fn args))
|
||||||
(error "No popup window was found for %s: %s" (car args) plist))
|
(error "No popup window was found for %s: %s" (car args) plist))
|
||||||
|
(cl-pushnew window doom-popup-windows :test #'eq)
|
||||||
(with-selected-window window
|
(with-selected-window window
|
||||||
(unless (eq plist t)
|
(unless (eq plist t)
|
||||||
(setq-local doom-popup-rules plist))
|
(setq-local doom-popup-rules plist))
|
||||||
|
@ -241,6 +245,7 @@ prevent the popup(s) from messing up the UI (or vice versa)."
|
||||||
properties."
|
properties."
|
||||||
(let ((window (or window (selected-window))))
|
(let ((window (or window (selected-window))))
|
||||||
(when (doom-popup-p window)
|
(when (doom-popup-p window)
|
||||||
|
(setq doom-popup-windows (delq window doom-popup-windows))
|
||||||
(when doom-popup-remember-history
|
(when doom-popup-remember-history
|
||||||
(setq doom-popup-history (list (doom--popup-data window))))
|
(setq doom-popup-history (list (doom--popup-data window))))
|
||||||
(let ((autokill-p (plist-get doom-popup-rules :autokill)))
|
(let ((autokill-p (plist-get doom-popup-rules :autokill)))
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue